背景
我们遇到的问题与Windows构建系统碰到文件路径当节点模块文件夹有有在其内物品太长错误路径超过260个字符。如何防止NPM从重新排序devDependencies安装<package> --save-dev的
我们发现在devDependencies部分的顶部添加深度嵌套的依赖关系可修复此问题。假设当npm看到一个嵌套的dependency C.1
需要package A
(已经在devDependencies中声明并可用)时,npm不会将dependency A
添加到dependency C.1
的node_modules目录中。
问题
我看到我的本地机器上的问题是,运行在npm install <package> --save-dev
重新排序devDependencies包按字母顺序,但为了NPM工艺包及其依赖的问题。如果我检查了这一点,那么构建系统会遇到相同的文件路径太长的错误。
即如果package A
来package C
和dependency C.1
需要package A
后,再故宫将增加package A
到dependency C.1
的node_modules文件夹。
我不知道这个重新排序是否只在我的机器上,因为我之前没有看到npm重新排序依赖关系。
有没有人见过这个或知道如何制止这种行为?
版本
节点:v0.10.32
NPM:v1.4.28
附注:我读过,NPM 2.0或未来版本将分析依赖性的层次结构,找到重复的包,并且只在文件系统上引用它们一次,但此时不会升级到npm 2.0。
'npm shrinkwrap'有同样的缺陷。 – Funkodebat 2014-11-14 16:53:27
@Funkodebat你注意到这是否是最近的变化?我记得看到npm只是追加到列表的底部。 – Jerry 2014-11-14 17:02:51
实际上它可能不存在于npm nemore,我有一段时间的旧版本。我最终创建了一个脚本,只要它检测到'package就会调用'npm shrinkwrap'。json“发生了变化,否则它会不断提交shrinkwrap,因为它不断重新生成 – Funkodebat 2014-11-14 17:05:17