makeshift v1.1.0
makeshift
Shove scopes and tokens into .npmrc
Simple CLI and module to add scopes and auth tokens to npm userconfig. makeshift remembers the odd key-value syntax in .npmrc so you don't have to.
Useful for pre-install setup in CI builds or for manual npm config initialization when using a private registry.
Examples
CI
If using Travis, you could do this in your .travis.yml file:
before_install:
- npm i -g makeshift && makeshift -s @myorg -r myregistry:8080instead of this:
before_install:
- printf "@myorg:registry=http://myregistry:8080/\n//myregistry:8080/:_authToken=${NPM_TOKEN}\n" >> ~/.npmrcNote that makeshift will automatically pull an NPM_TOKEN env var and apply it to the given registry.
Local
Let's say you use a private registry (like npm Enterprise) and you want to associate multiple scopes to your registry, makeshift has you covered:
makeshift -r https://npm.myco.com -s dev ops itOr perhaps your auth provider uses 2-factor auth and you can't use npm login to fetch your token, just makeshift it:
makeshift -r https://npm.myco.com -t 17b18d9507644940cf46589210a2fa6f706776d3Or do it all at once:
makeshift -r https://npm.myco.com -s dev ops it -t 17b18d9507644940cf46589210a2fa6f706776d3Install and Usage
CLI
$ npm install -g makeshift
$ makeshift --help
Usage: makeshift [-s scope] [-r registry] [-t token]
Associate scopes and/or auth token to a registry in .npmrc
Options:
-s, --scope One or more scopes to associate [array:string]
-r, --registry The registry to apply scopes/token to [string]
-t, --token The token value to set for the registry [string]
-h, --help Show help [commands: help] [boolean]
-v, --version Show version number [commands: version] [boolean]Note that the CLI will look for env vars prefixed with NPM_ for any options not given on the command line, e.g. NPM_TOKEN (useful in CI environment).
Module
npm install --save makeshiftvar makeshift = require('makeshift')
makeshift(opts)
.then(npmCmds => npmCmds.forEach(c => console.log(c.cmd)))
.catch(err => console.error('uh oh:', err))API
makeshift(opts)
Accepts an options object and returns a then-able Promise that resolves to an array of "npm command" objects.
Options:
registry: string, defaults to result ofnpm config get registryThe registry URL to associate given scopes or auth token to.
scopes: array of strings, no defaultOne or more package scopes (namespaces) to associate to the registry.
token: string, no defaultThe auth token to apply to the registry.
run: boolean, defaults tofalseWhether to run the generated npm commands (and modify
.npmrc) when resolving the returnedPromise.
Each "npm command" object given to the resolved Promise will include these properties:
cmd: stringThe
npm configcommand that would modify.npmrcdesc: objectAn object describing the command, with the following properties:
msg: stringAn unformatted command description.
args: array of stringsThe arguments that could apply to
msgduring formatting.
License
ISC © Contributors