在执行“npm install”之后安装了太多的npm模块,

我的package.json

 { "name": "thumbnaillist-gulp", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "browserify": "^12.0.1", "gulp": "^3.9.0", "gulp-concat": "^2.6.0", "gulp-react": "^3.1.0", "gulp-util": "^3.0.7", "react": "^0.13.3", "react-script-loader": "0.0.1", "reactify": "^1.1.1", "vinyl-source-stream": "^1.1.0", "watchify": "^3.6.1" } } 

奇怪的是,在执行“npm install”之后,除了dependencies域中列出的模块之外,还安装了其他模块,比如

 drwxr-xr-x 14 xxx wheel 476B Nov 18 18:41 acorn drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 amdefine drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-green drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-regex drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-styles drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-wrap drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 anymatch drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 archy drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arr-diff drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arr-flatten drwxr-xr-x 5 xxx wheel 170B Nov 18 18:41 array-differ drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 array-filter drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 array-map drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 array-reduce drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 array-slice drwxr-xr-x 5 xxx wheel 170B Nov 18 18:41 array-uniq drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 array-unique drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arrify drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 asn1.js drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 assert drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 ast-types drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 astw drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 async-each drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 balanced-match drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 base62 drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 base64-js drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 beeper drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 binary-extensions drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 bn.js drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 brace-expansion drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 braces drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 brorand drwxr-xr-x 13 xxx wheel 442B Nov 18 18:41 browser-pack drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 browser-resolve drwxr-xr-x 12 xxx wheel 408B Nov 18 18:41 browserify drwxr-xr-x 17 xxx wheel 578B Nov 18 18:41 browserify-aes drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-cipher drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 browserify-des drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-rsa drwxr-xr-x 16 xxx wheel 544B Nov 18 18:41 browserify-sign drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-zlib drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 buffer drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 buffer-xor 

任何暗示呢? 我的NPM坏了吗? 或者我没有以正确的方式编写package.json

不,没有什么错,NPM现在将所有依赖关系安装到根模块文件夹,除非存在版本冲突。 所有您看到的其他模块都是您安装的模块的依赖关系。

从NPM 3.0.0发行说明 :

现在您的依赖关系将被最大限度地安装。 只要有可能,所有的依赖关系,它们的依赖关系,以及它们的依赖关系都将被安装在项目的node_modules文件夹中,而不会嵌套。 当两个(或更多)模块具有冲突的依赖关系时,只能看到嵌套在另一个之下的模块。

我希望亚历山大·奥马拉的答案对你有帮助如果你仍然想要或为那些想要使用像老版本的依赖关系

您可以使用

npm install –legacy-bundling

如果你总是想使用

npm set legacy-bundling = true

和使用可以照常运行

npm安装