执行" npm install"后安装了太多的npm模块。

时间:2015-11-19 02:40:29

标签: json node.js 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"之后,除了依赖项字段中列出的模块之外,还安装了其他模块,例如

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

2 个答案:

答案 0 :(得分:16)

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

来自NPM 3.0.0 release notes

  

您的依赖项现在将最大程度地安装。在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的node_modules文件夹中,而不进行嵌套。当两个(或更多)模块具有冲突的依赖关系时,您只会看到彼此嵌套的模块。

答案 1 :(得分:1)

我希望Alexander O' Mara回答对您有所帮助如果您仍然想要或者想要使用旧版本等依赖项的人

你可以使用

npm install --legacy-bundling

如果您一直想使用

npm set legacy-bundling = true

并且使用可以照常运行

npm install