NPM似乎有一种奇怪的行为,它取决于包名称(按字母顺序排列)来确定要安装的内容。
例如,如果我有以下设置:
A depends on C@2.1.0
B depends on C@2.x
C@2.1.0 and C@2.2.0 are published
我将安装以下
A
B
C@2.1.0
因为C@2.1.0
也满足2.x
。
现在,如果我翻转那些:
A depends on C@2.x
B depends on C@2.1.0
我的行为很烦人:
A
B
- C@2.1.0
C@2.2.0
A
首先被处理,因为它首先按字母顺序排列,它得到C@2.2.0
,最新的满足条件。当它到达B
时,2.2.0
并不满足2.1.0
,因此B
获得C@2.1.0
,而我现在有了重复。
它基本上是相同的设置,但只是依赖包的名称会影响它的处理方式。
npm dedupe
似乎也没有影响这种情况。
有没有办法阻止这种情况并始终从第一种情况中获得结果?