NPM安装下载与项目依赖关系无关的模块

时间:2016-06-13 18:44:21

标签: node.js npm-install

此特定项目的package.json的dependencies部分看起来像。

  "dependencies": {
    "jquery": "^2.2.4",
    "request": "^2.72.0",
    "request-json": "^0.5.6"
  }

当我键入NPM安装时,node_modules文件夹如下所示:

06/12/2016  12:12 AM    <DIR>          .
06/12/2016  12:12 AM    <DIR>          ..
06/12/2016  12:12 AM    <DIR>          .bin
06/12/2016  12:12 AM    <DIR>          ansi-regex
06/12/2016  12:12 AM    <DIR>          ansi-styles
06/12/2016  12:12 AM    <DIR>          asn1
06/12/2016  12:12 AM    <DIR>          assert-plus
06/12/2016  12:12 AM    <DIR>          async
06/12/2016  12:12 AM    <DIR>          aws-sign2
06/12/2016  12:12 AM    <DIR>          aws4
06/12/2016  12:12 AM    <DIR>          bl
06/12/2016  12:12 AM    <DIR>          boom
06/12/2016  12:12 AM    <DIR>          caseless
06/12/2016  12:12 AM    <DIR>          chalk
06/12/2016  12:12 AM    <DIR>          combined-stream
06/12/2016  12:12 AM    <DIR>          commander
06/12/2016  12:12 AM    <DIR>          core-util-is
06/12/2016  12:12 AM    <DIR>          cryptiles
06/12/2016  12:12 AM    <DIR>          dashdash
06/12/2016  12:12 AM    <DIR>          delayed-stream
06/12/2016  12:12 AM    <DIR>          depd
06/12/2016  12:12 AM    <DIR>          ecc-jsbn
06/12/2016  12:12 AM    <DIR>          escape-string-regexp
06/12/2016  12:12 AM    <DIR>          extend
06/12/2016  12:12 AM    <DIR>          extsprintf
06/12/2016  12:12 AM    <DIR>          forever-agent
06/12/2016  12:12 AM    <DIR>          form-data
06/12/2016  12:12 AM    <DIR>          generate-function
06/12/2016  12:12 AM    <DIR>          generate-object-property
06/12/2016  12:12 AM    <DIR>          getpass
06/12/2016  12:12 AM    <DIR>          graceful-readlink
06/12/2016  12:12 AM    <DIR>          har-validator
06/12/2016  12:12 AM    <DIR>          has-ansi
06/12/2016  12:12 AM    <DIR>          hawk
06/12/2016  12:12 AM    <DIR>          hoek
06/12/2016  12:12 AM    <DIR>          http-signature
06/12/2016  12:12 AM    <DIR>          inherits
06/12/2016  12:12 AM    <DIR>          is-my-json-valid
06/12/2016  12:12 AM    <DIR>          is-property
06/12/2016  12:12 AM    <DIR>          is-typedarray
06/12/2016  12:12 AM    <DIR>          isarray
06/12/2016  12:12 AM    <DIR>          isstream
06/12/2016  12:12 AM    <DIR>          jodid25519
06/12/2016  12:12 AM    <DIR>          jquery
06/12/2016  12:12 AM    <DIR>          jsbn
06/12/2016  12:12 AM    <DIR>          json-schema
06/12/2016  12:12 AM    <DIR>          json-stringify-safe
06/12/2016  12:12 AM    <DIR>          jsonpointer
06/12/2016  12:12 AM    <DIR>          jsprim
06/12/2016  12:12 AM    <DIR>          mime-db
06/12/2016  12:12 AM    <DIR>          mime-types
06/12/2016  12:12 AM    <DIR>          node-uuid
06/12/2016  12:12 AM    <DIR>          oauth-sign
06/12/2016  12:12 AM    <DIR>          pinkie
06/12/2016  12:12 AM    <DIR>          pinkie-promise
06/12/2016  12:12 AM    <DIR>          process-nextick-args
06/12/2016  12:12 AM    <DIR>          qs
06/12/2016  12:12 AM    <DIR>          readable-stream
06/12/2016  12:12 AM    <DIR>          request
06/12/2016  12:12 AM    <DIR>          request-json
06/12/2016  12:12 AM    <DIR>          sntp
06/12/2016  12:12 AM    <DIR>          sshpk
06/12/2016  12:12 AM    <DIR>          stringstream
06/12/2016  12:12 AM    <DIR>          string_decoder
06/12/2016  12:12 AM    <DIR>          strip-ansi
06/12/2016  12:12 AM    <DIR>          supports-color
06/12/2016  12:12 AM    <DIR>          tough-cookie
06/12/2016  12:12 AM    <DIR>          tunnel-agent
06/12/2016  12:12 AM    <DIR>          tweetnacl
06/12/2016  12:12 AM    <DIR>          util-deprecate
06/12/2016  12:12 AM    <DIR>          verror
06/12/2016  12:12 AM    <DIR>          xtend
               0 File(s)              0 bytes
              72 Dir(s)  417,568,436,224 bytes free

据我了解,此项目的本地node_modules文件夹应仅包含依赖项中列出的软件包?

为什么安装所有这些与我的项目无关的其他软件包?

我的PC上的每个节点项目都存在同样的问题。我认为这是一个Windows问题。

当我使用NPM Prune时,没有任何事情发生

3 个答案:

答案 0 :(得分:0)

它们是您列出的模块中列出的依赖项,或者您的依赖模块依赖项所具有的模块或此逻辑的任何迭代。

答案 1 :(得分:0)

这些是您的项目依赖的模块的依赖项(在package.json文件中的那些)

如果您使用npm ls,您将获得项目中精美打印的模块列表以及它们所依赖的模块。

答案 2 :(得分:0)

自NPM 3+以来,所有依赖关系都被展平,以便在版本匹配时更好地“重用”不同模块之间的共享依赖关系。

如果您不想要这种行为,降级到npm 2似乎是唯一的方法。