NPM 安装时每个依赖的包都重新复制了一份,导致一个小小的项目安装完依赖就占了几百M的空间,而且node_modules/xxx/node_modules......
路径太深,还不知道NPM有没有重复下载,不是一般无语,看有人提了 Issue 建议用 node_modules/package@version
这样扁平化的方式管理,减少重复文件,但官方竟然拒绝了,不知道他们脑子里想的什么。我印象中好像有提到说 NPM 新版将支持node_modules扁平化目录树,但没找到具体消息。
支持了
@i5ting 支持了?我用 npm 最新版本 2.13.4 安装还是有很多层 node_modules啊?
3.0
@xieren58 试了下,是扁平了一点,只是没有完全扁平,而且发现用了3.x的NPM安装后体积竟然更大了 -_-! 还是放弃
不, node_modules 的主要目的是为了 multi version , 即同一个项目使用一个包的两个版本不冲突, 减少文件不是主要目的
当然, 你可以 npm dedupe
https://docs.npmjs.com/cli/dedupe
支持 node_modules长了windows下都删除不了
运行时几百M问题不大,GIT的时候一定要ignore这个文件夹(PS,BOWER的文件夹也要IGNORE)。布署的时候传GIT的源码或者直接在GIT中CHECKOUT,完了之后再在服务器 npm install 一下,服务器上安装也快,NPM有没有CACHE没具体测试过,目测是有的,照理这种问题NPM的开发人员应该会注意到。
@magicdawn 我不是说了目录名为 package@version
之类的组织方式解决多版本的问题了么? dedupe 这个功能不应该默认的么?
挖坟/// 不需要呀require(‘some-module’) 完全可以忽略 版本 去寻找当前packer 依赖的模块 ,然后不就可以了