uber-archive / npm-shrinkwrap

A consistent shrinkwrap tool
MIT License
774 stars 47 forks source link

Unable to set warnOnNotSemver to false #69

Open pdehaan opened 9 years ago

pdehaan commented 9 years ago

I added npm-shrinkwrap locally to my project (npm i npm-shrinkwrap -D), but I don't seem to be able to set --warnOnNotSemver to false.

$ npm run shrinkwrap --warnOnNotSemver=false

> npm-shrinkwrap --dev

{ _: [],
  dev: true,
  dirname: '/Users/pdehaan/dev/fxa-content-server_pd/fxa-content-server',
  keepNested: false,
  warnOnNotSemver: true,
  cmd: 'npm-shrinkwrap' }
$ npm run shrinkwrap --warnOnNotSemver:false

> npm-shrinkwrap --dev

{ _: [],
  dev: true,
  dirname: '/Users/pdehaan/dev/fxa-content-server_pd/fxa-content-server',
  keepNested: false,
  warnOnNotSemver: true,
  cmd: 'npm-shrinkwrap' }
$ npm run shrinkwrap --warnOnNotSemver false

> npm-shrinkwrap --dev

{ _: [],
  dev: true,
  dirname: '/Users/pdehaan/dev/fxa-content-server_pd/fxa-content-server',
  keepNested: false,
  warnOnNotSemver: true,
  cmd: 'npm-shrinkwrap' }

Each time warnOnNotSemver seems to be set to true, and I see the warnings.

pdehaan commented 9 years ago
$ ./node_modules/.bin/npm-shrinkwrap --warnOnNotSemver=0
{ _: [],
  warnOnNotSemver: true,
  dirname: '/Users/pdehaan/dev/fxa-content-server_pd/fxa-content-server',
  keepNested: false,
  cmd: 'npm-shrinkwrap' }

I think that almost makes sense, given this code:

    opts.warnOnNotSemver = opts.warnOnNotSemver ?
        opts.warnOnNotSemver : true;

— via ./bin/cli.js:35-36

If my value for opts.warnOnNotSemver is false (because I don't want the warnings), then the if statement fails and sets the value to true.


$ ./node_modules/.bin/npm-shrinkwrap --dev --warnOnNotSemver=false
{ _: [],
  dev: true,
  warnOnNotSemver: 'false',
  dirname: '/Users/pdehaan/dev/fxa-content-server_pd/fxa-content-server',
  keepNested: false,
  cmd: 'npm-shrinkwrap' }

Here my value of 'false' is set as a string, which probably gets converted to a value of true.