chh*_*vey 19 dependencies module package dependency-management npm
我刚刚升级到npm版本3,并注意到它所做的一个最大的改变是它强制执行一个平面依赖树.
您的依赖项现在将最大程度地安装.在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的
node_modules
文件夹中而不进行嵌套.当两个(或更多)模块具有冲突的依赖关系时,您将只看到彼此嵌套的模块.
因此,例如,如果包A依赖于包B,那么当您npm install A
获得此文件结构时:
--- root/
|--- node_modules/
|--- A/
|--- B/
Run Code Online (Sandbox Code Playgroud)
而不是版本2或更低版本的旧文件结构:
--- root/
|--- node_modules/
|--- A/
|--- node_modules/
|--- B/
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个(我肯定不是最后一个)问题是:
包装一个不知道的NPM V3的行为,并且依赖于包乙.但是A假设旧的(v2)文件结构,因为它node_modules/B
在代码中而不是正确的../node_modules/B
.现在来自A的代码将无法编译,因为它B/
在错误的目录中查找.
如果我不想唠叨开发人员来修复代码并等待A的更新,我想知道是否有一种方法可以设置一个选项来强制npm 在其自己的文件夹中安装A的依赖项node_modules
,相同方式npm v2会做到的.
Kon*_*agg 23
您是否尝试过--legacy-bundling
的npm install
?
https://docs.npmjs.com/cli/install
--legacy-bundling参数将导致npm安装包,使得1.4之前的npm版本(例如节点0.8中包含的版本)可以安装包.这消除了所有自动扣除.
归档时间: |
|
查看次数: |
8359 次 |
最近记录: |