2015-11-19 209 views
10

package.json太多的NPM模块安装后执行“故宫安装”

{ 
    "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" 
    } 
} 

奇怪的是,我执行后,“故宫安装”,除了在依赖字段中列出的模块,其他模块也安装了,比如

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

回答

15

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

NPM 3.0.0 release notes

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

+0

嗨,亚历克斯: 感谢。似乎NPM试图让事情变得干净和独立?它只是让我的几个测试项目很大。^_ ^。 –

+0

感谢您澄清这@Alexander。我想知道在项目中存储所有依赖项的好处,而不是缓存临时目录中不是“特定项目”的项目...... – tftd

+0

我使用'npm install webpack'将webpack放入node_modules目录中,然后获得341个包。你的意思是webpack依赖于341包吗? – inherithandle

1

我希望还是亚历山大·奥马拉的回答对你有帮助。如果你仍然想为那些谁想要使用像依赖旧版本

可以使用

NPM安装--legacy-捆绑

如果你总是希望使用

NPM设置传统的捆绑=真

和使用可以照常运行

NPM安装