Npm安装依赖,为什么会产生很多文件夹

发布于 2017-05-06 02:08:20 字数 187 浏览 1468 评论 7

以前自学node做后台的时候,也过用npm安装依赖,node_modules中的文件夹基本上是和package.json中一一对应的,这次在新公司接手一个用grunt管理的前端项目,install完在node_modules中生成了600多个文件夹……感觉有点不对劲,虽然使用上没问题……而且看之前的人留的文档,基本上也是一一对应的,为什么我就装出这么多文件夹

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

偏爱自由 2017-05-06 02:08:28

请问我执行npm ls是会出现npm error extraneous的错误,查了好像是说下载的模块没有添加到package.json的依赖中,不知道是不是这种原因。

夜无邪 2017-05-06 02:08:24

最近也是发现自己的项目npm install后无端跑出好多莫名的模块但是我的node -v 的版本还是v4.2.4

归属感 2017-05-06 02:08:24

回答我的问题吧

晚风撩人 2017-05-06 02:08:22

何必理会呢,用grunt/gulp/fis3发布出来就行了

瑾兮 2017-05-06 02:08:22

这是 npm3 中作出的改变,也是最大的改变之一,5.0 用的是 npm3。npm -v 可以查看 npm 版本。
个人认为,这一改变还是有很多好处的。
首先,npm 2.0 时代各个模块中的公共模块没有做到复用,都有自己的一份依赖,这些模块造成了很大的冗余。这种方式的一大弊端就是导致 node_modules 的目录层级非常的深,以至在 windows 下会出现 node_modules 路径过长,无法删除。
其次,2.0 的管理方式不太适合做前端的包管理,比如我用 npm 安装了一个插件依赖了 jQuery 1.10,而另一个插件依赖了 jQuery 1.11.3,npm 会把这两个版本的 jQuery 分别下载到对应插件的 node_modules 中。最后打包压缩的时候就会出现压缩了两个 jQuery 的情况,这在 node 应用中没有问题,但是在前端项目中就不行了,这显然不是我们所需要的。npm3 中把依赖扁平化处理就很好的解决了这个问题,它只会在 node_modules 中保留一个较新的 jQuery。
对于你评论中说的 hbuilder 的问题,有可能和这种目录结构有关,如果有关,那也是 hbuilder 的一个 bug,你可以换用 npm2 来安装测试一下。

泛泛之交 2017-05-06 02:08:21

我升级到最新版的5.X,npm install也是安装了很多文件。 恢复到4.X 就可以了。 不清楚5.x是怎么个改变

想挽留 2017-05-06 02:08:20

在5.0以前是递归依赖,现在改为平行依赖。另外,5.0以前在windows下递归依赖会产生很长的文件名,无法删除。算是解决了一个麻烦。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文