Skip to content

Instantly share code, notes, and snippets.

@shinout
Last active July 20, 2016 06:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shinout/db19b045087307d9901008721c91a35f to your computer and use it in GitHub Desktop.
Save shinout/db19b045087307d9901008721c91a35f to your computer and use it in GitHub Desktop.
npm-v3-shrinkwrap-bug Raw

状況

  • using npm v3.10.3
  • このパッケージはdependenciesを持たない
  • このパッケージはdevDependenciesとしてreapp-uiを持つ

npm shrinkwrapで期待される結果

npm-shrinkwrap.json は依存モジュール情報を持たない

実際の結果

npm shrinkwrap.jsonはいくつか依存モジュールを持ってしまっている

situation

  • using npm v3.10.3
  • this package has no dependencies
  • this package has dev-dependent on reapp-ui

expected result

npm-shrinkwrap.json contains no dependent modules.

actual result

npm shrinkwrap.json has some modules as dependencies.

sample@1.0.0 /Users/shinout/tmp/shrinkwrap-sample
└─┬ reapp-ui@0.12.85
├── classnames@2.2.5
├─┬ css-to-matrix@1.0.0
│ ├── matrix-utilities@1.2.4
│ ├── transform-to-matrix@0.1.1
│ └── umodel@0.0.5
├── fuzzy@0.1.1
├── lodash@4.13.1
├─┬ lodash.merge@4.4.0
│ ├── lodash._baseclone@4.5.7
│ ├── lodash._root@3.0.1
│ ├── lodash.isplainobject@4.0.4
│ ├── lodash.keysin@4.1.4
│ └── lodash.rest@4.0.3
├── observable-state@0.3.4
├─┬ radium@0.16.6
│ ├── array-find@1.0.0
│ ├── exenv@1.2.1
│ ├─┬ inline-style-prefixer@0.6.7
│ │ └── bowser@1.4.1
│ └─┬ rimraf@2.5.3
│ └─┬ glob@7.0.5
│ ├── fs.realpath@1.0.0
│ ├─┬ inflight@1.0.5
│ │ └── wrappy@1.0.2
│ ├── inherits@2.0.1
│ ├─┬ minimatch@3.0.2
│ │ └─┬ brace-expansion@1.1.5
│ │ ├── balanced-match@0.4.2
│ │ └── concat-map@0.0.1
│ ├── once@1.3.3
│ └── path-is-absolute@1.0.0
├─┬ react@0.14.8
│ ├─┬ envify@3.4.1
│ │ ├─┬ jstransform@11.0.3
│ │ │ ├── base62@1.1.1
│ │ │ ├─┬ commoner@0.10.4
│ │ │ │ ├─┬ commander@2.9.0
│ │ │ │ │ └── graceful-readlink@1.0.1
│ │ │ │ ├─┬ detective@4.3.1
│ │ │ │ │ ├── acorn@1.2.2
│ │ │ │ │ └── defined@1.0.0
│ │ │ │ ├── glob@5.0.15
│ │ │ │ ├── graceful-fs@4.1.4
│ │ │ │ ├── iconv-lite@0.4.13
│ │ │ │ ├─┬ mkdirp@0.5.1
│ │ │ │ │ └── minimist@0.0.8
│ │ │ │ ├── private@0.1.6
│ │ │ │ ├── q@1.4.1
│ │ │ │ └─┬ recast@0.10.43
│ │ │ │ ├── ast-types@0.8.15
│ │ │ │ ├── esprima-fb@15001.1001.0-dev-harmony-fb
│ │ │ │ └── source-map@0.5.6
│ │ │ ├── esprima-fb@15001.1.0-dev-harmony-fb
│ │ │ ├── object-assign@2.1.1
│ │ │ └─┬ source-map@0.4.4
│ │ │ └── amdefine@1.0.0
│ │ └── through@2.3.8
│ └─┬ fbjs@0.6.1
│ ├── core-js@1.2.7
│ ├─┬ loose-envify@1.2.0
│ │ └── js-tokens@1.0.3
│ ├─┬ promise@7.1.1
│ │ └── asap@2.0.4
│ ├── ua-parser-js@0.7.10
│ └── whatwg-fetch@0.9.0
├─┬ react-animate-state@1.0.1
│ └── ease-component@1.0.0
├── react-style-normalizer@1.2.8
├── reapp-component@1.0.2
├── reapp-object-assign@1.0.0
├── reapp-scroller@1.0.8
├── shallow-equals@0.0.0
└── validator@3.43.0
{
"name": "sample",
"version": "1.0.0",
"dependencies": {
"acorn": {
"version": "1.2.2",
"from": "acorn@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
},
"amdefine": {
"version": "1.0.0",
"from": "amdefine@>=0.0.4",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz"
},
"array-find": {
"version": "1.0.0",
"from": "array-find@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz"
},
"asap": {
"version": "2.0.4",
"from": "asap@>=2.0.3 <2.1.0",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.4.tgz"
},
"ast-types": {
"version": "0.8.15",
"from": "ast-types@0.8.15",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz"
},
"balanced-match": {
"version": "0.4.2",
"from": "balanced-match@>=0.4.1 <0.5.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
},
"base62": {
"version": "1.1.1",
"from": "base62@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/base62/-/base62-1.1.1.tgz"
},
"bowser": {
"version": "1.4.1",
"from": "bowser@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-1.4.1.tgz"
},
"brace-expansion": {
"version": "1.1.5",
"from": "brace-expansion@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz"
},
"classnames": {
"version": "2.2.5",
"from": "classnames@>=2.2.3 <3.0.0",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz"
},
"commander": {
"version": "2.9.0",
"from": "commander@>=2.5.0 <3.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"
},
"commoner": {
"version": "0.10.4",
"from": "commoner@>=0.10.1 <0.11.0",
"resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.4.tgz",
"dependencies": {
"glob": {
"version": "5.0.15",
"from": "glob@>=5.0.15 <6.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
}
}
},
"concat-map": {
"version": "0.0.1",
"from": "concat-map@0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
},
"core-js": {
"version": "1.2.7",
"from": "core-js@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz"
},
"css-to-matrix": {
"version": "1.0.0",
"from": "css-to-matrix@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/css-to-matrix/-/css-to-matrix-1.0.0.tgz"
},
"defined": {
"version": "1.0.0",
"from": "defined@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
},
"detective": {
"version": "4.3.1",
"from": "detective@>=4.3.1 <5.0.0",
"resolved": "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz"
},
"ease-component": {
"version": "1.0.0",
"from": "ease-component@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/ease-component/-/ease-component-1.0.0.tgz"
},
"envify": {
"version": "3.4.1",
"from": "envify@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz"
},
"esprima-fb": {
"version": "15001.1.0-dev-harmony-fb",
"from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15002.0.0",
"resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz"
},
"exenv": {
"version": "1.2.1",
"from": "exenv@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.1.tgz"
},
"fbjs": {
"version": "0.6.1",
"from": "fbjs@>=0.6.1 <0.7.0",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz"
},
"fs.realpath": {
"version": "1.0.0",
"from": "fs.realpath@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
},
"fuzzy": {
"version": "0.1.1",
"from": "fuzzy@>=0.1.1 <0.2.0",
"resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.1.tgz"
},
"glob": {
"version": "7.0.5",
"from": "glob@>=7.0.5 <8.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz"
},
"graceful-fs": {
"version": "4.1.4",
"from": "graceful-fs@>=4.1.2 <5.0.0",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz"
},
"graceful-readlink": {
"version": "1.0.1",
"from": "graceful-readlink@>=1.0.0",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
},
"iconv-lite": {
"version": "0.4.13",
"from": "iconv-lite@>=0.4.5 <0.5.0",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
},
"inflight": {
"version": "1.0.5",
"from": "inflight@>=1.0.4 <2.0.0",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz"
},
"inherits": {
"version": "2.0.1",
"from": "inherits@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"inline-style-prefixer": {
"version": "0.6.7",
"from": "inline-style-prefixer@>=0.6.2 <0.7.0",
"resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-0.6.7.tgz"
},
"js-tokens": {
"version": "1.0.3",
"from": "js-tokens@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz"
},
"jstransform": {
"version": "11.0.3",
"from": "jstransform@>=11.0.3 <12.0.0",
"resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz"
},
"lodash": {
"version": "4.13.1",
"from": "lodash@>=4.11.1 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz"
},
"lodash._baseclone": {
"version": "4.5.7",
"from": "lodash._baseclone@>=4.5.0 <4.6.0",
"resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz"
},
"lodash._root": {
"version": "3.0.1",
"from": "lodash._root@>=3.0.0 <3.1.0",
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
},
"lodash.isplainobject": {
"version": "4.0.4",
"from": "lodash.isplainobject@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.4.tgz"
},
"lodash.keysin": {
"version": "4.1.4",
"from": "lodash.keysin@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.1.4.tgz"
},
"lodash.merge": {
"version": "4.4.0",
"from": "lodash.merge@>=4.0.1 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.4.0.tgz"
},
"lodash.rest": {
"version": "4.0.3",
"from": "lodash.rest@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.3.tgz"
},
"loose-envify": {
"version": "1.2.0",
"from": "loose-envify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz"
},
"matrix-utilities": {
"version": "1.2.4",
"from": "matrix-utilities@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/matrix-utilities/-/matrix-utilities-1.2.4.tgz"
},
"minimatch": {
"version": "3.0.2",
"from": "minimatch@>=3.0.2 <4.0.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz"
},
"minimist": {
"version": "0.0.8",
"from": "minimist@0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
},
"mkdirp": {
"version": "0.5.1",
"from": "mkdirp@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
},
"object-assign": {
"version": "2.1.1",
"from": "object-assign@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz"
},
"observable-state": {
"version": "0.3.4",
"from": "observable-state@>=0.3.4 <0.4.0",
"resolved": "https://registry.npmjs.org/observable-state/-/observable-state-0.3.4.tgz"
},
"once": {
"version": "1.3.3",
"from": "once@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
},
"path-is-absolute": {
"version": "1.0.0",
"from": "path-is-absolute@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
},
"private": {
"version": "0.1.6",
"from": "private@>=0.1.6 <0.2.0",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz"
},
"promise": {
"version": "7.1.1",
"from": "promise@>=7.0.3 <8.0.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz"
},
"q": {
"version": "1.4.1",
"from": "q@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
},
"radium": {
"version": "0.16.6",
"from": "radium@>=0.16.4 <0.17.0",
"resolved": "https://registry.npmjs.org/radium/-/radium-0.16.6.tgz"
},
"react": {
"version": "0.14.8",
"from": "react@>=0.14.0 <0.15.0",
"resolved": "https://registry.npmjs.org/react/-/react-0.14.8.tgz"
},
"react-animate-state": {
"version": "1.0.1",
"from": "react-animate-state@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/react-animate-state/-/react-animate-state-1.0.1.tgz"
},
"react-style-normalizer": {
"version": "1.2.8",
"from": "react-style-normalizer@>=1.2.8 <2.0.0",
"resolved": "https://registry.npmjs.org/react-style-normalizer/-/react-style-normalizer-1.2.8.tgz"
},
"reapp-component": {
"version": "1.0.2",
"from": "reapp-component@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/reapp-component/-/reapp-component-1.0.2.tgz"
},
"reapp-object-assign": {
"version": "1.0.0",
"from": "reapp-object-assign@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/reapp-object-assign/-/reapp-object-assign-1.0.0.tgz"
},
"reapp-scroller": {
"version": "1.0.8",
"from": "reapp-scroller@>=1.0.8 <2.0.0",
"resolved": "https://registry.npmjs.org/reapp-scroller/-/reapp-scroller-1.0.8.tgz"
},
"recast": {
"version": "0.10.43",
"from": "recast@>=0.10.0 <0.11.0",
"resolved": "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz",
"dependencies": {
"esprima-fb": {
"version": "15001.1001.0-dev-harmony-fb",
"from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0",
"resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz"
},
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
}
}
},
"rimraf": {
"version": "2.5.3",
"from": "rimraf@>=2.4.0 <3.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.3.tgz"
},
"shallow-equals": {
"version": "0.0.0",
"from": "shallow-equals@0.0.0",
"resolved": "https://registry.npmjs.org/shallow-equals/-/shallow-equals-0.0.0.tgz"
},
"source-map": {
"version": "0.4.4",
"from": "source-map@>=0.4.2 <0.5.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
},
"through": {
"version": "2.3.8",
"from": "through@>=2.3.4 <2.4.0",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
},
"transform-to-matrix": {
"version": "0.1.1",
"from": "transform-to-matrix@>=0.0.0 <1.0.0",
"resolved": "https://registry.npmjs.org/transform-to-matrix/-/transform-to-matrix-0.1.1.tgz"
},
"ua-parser-js": {
"version": "0.7.10",
"from": "ua-parser-js@>=0.7.9 <0.8.0",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz"
},
"umodel": {
"version": "0.0.5",
"from": "umodel@>=0.0.0 <1.0.0",
"resolved": "https://registry.npmjs.org/umodel/-/umodel-0.0.5.tgz"
},
"validator": {
"version": "3.43.0",
"from": "validator@>=3.40.0 <4.0.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-3.43.0.tgz"
},
"whatwg-fetch": {
"version": "0.9.0",
"from": "whatwg-fetch@>=0.9.0 <0.10.0",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz"
},
"wrappy": {
"version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
}
}
}
{
"name": "sample",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
},
"devDependencies": {
"reapp-ui": "^0.12.85"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment