NPM Private Modules

What you need to know.


Glen Arrowsmith
June 2015
twitter.com/garrows

NPM Enterprise

It's not that

 
  • On premise
  • Selective local mirror
  • $20/active user/month

Github Dependencies

 

{
    "name": "cat-farm",
    "dependencies": {

        "cat-generator": 
     "git+https://0ba0...160ea:x-oauth-basic@github.com/acme/cat-generator.git#stable",

        "cat-groomer": "git://github.com/acme/cat-groomer.git#v1.0"
    }
}
  • No Semvers
  • Shared Tokens
  • Less Control

Scopes

package.json

{
    "name": "@acme/cat-generator",
    "version": "1.0.0",
    "...": "..." 
}
{
    "name": "cat-generator",
    "version": "1.0.0",
    "...": "..." 
}
npm install @acme/cat-generator
npm install cat-generator

Scopes

node_modules

./node_modules/@acme/cat-generator/
./node_modules/cat-generator/

Scopes

@ symbol complete for machine names on linux/unix/OSX

ls node_modules/\@acme/cat-generator/

Windows is fine with backwards slashes

dir node_modules\@acme\cat-generator\

Access

Public or Private

npm access restricted @acme/cat-generator
npm access public @acme/cat-generator

Access

Collaborator Access Control

npm access add read-write garrows @acme/cat-generator
  # npm ERR! npm access ls isn't implemented yet!

NPM Shrinkwrap

npm shrinkwrap
cat npm-shrinkwrap.json
{
  "name": "test",
  "version": "0.0.0",
  "dependencies": {
    "ar-drone": {
      "version": "0.3.3",
      "from": "ar-drone@*",
      "resolved": "https://registry.npmjs.org/ar-drone/-/ar-drone-0.3.3.tgz",
      "dependencies": {
        "buffy": {
          "version": "0.0.4",
          "from": "buffy@0.0.4",
          "resolved": "https://registry.npmjs.org/buffy/-/buffy-0.0.4.tgz"
        },
        "simple-debug": {
          "version": "1.1.2",
          "from": "simple-debug@>=1.1.1 <1.2.0",
          "resolved": "https://registry.npmjs.org/simple-debug/-/simple-debug-1.1.2.tgz"
        }
      }
    },
    "...":"..."
  }
}

Organisations

 

  • There is no organisation support yet
  • Create a user and upgrade it later
  • Every collaborator has to be paying???

Pricing

$7/Month/User (USD)

Good Luck. Payment is flakey.

Bonus Tip

npm link

cd code/acme/cat-generator
npm link
cd code/cat-farm
npm link @acme/cat-generator

Questions?

Glen Arrowsmith
glen.arrowsmith@gmail.com
twitter.com/garrows

P.S. Come work at IIX.net...              

...we like pizza.

NPM Private Modules

By Glen Arrowsmith

NPM Private Modules

  • 1,823