我有一个项目,有两个npm包(我们称之为A和B),它们拉取了同一个npm包的两个不同版本(称之为C)。现在,由于我不知道的原因,当我一起使用A和B时,C的版本根据我首先定义的内容而变化,例如:
import { defineCustomElements as A} from '@A/A/dist/loader';
import { defineCustomElements as B} from '@B/B/dist/loader';
// This is where things are weird
// the order in which I put A() and B() below
// somehow defines which version of C to use
A()
B()
**问题:**如何使A使用它拉取的C的版本,B也使用C的版本?
**我试过了:**我仔细检查了A和B的不同版本,试着在谷歌上搜索npm如何决定使用哪个版本的重复依赖项,但没有任何结果......我看到了提到npm别名的答案--尽管我不知道如果C与A和B沿着被拉出来该如何操作。
1条答案
按热度按时间9lowa7mx1#
https://www.stefanjudis.com/today-i-learned/how-to-override-your-dependencys-dependencies/
假设您的一个依赖项(第一级)依赖于另一个依赖项(第二级),而另一个依赖项包含过时的其他依赖项。除了分叉和修复您的第一级依赖项之外,还没有一种简单的方法来控制
node_modules
树下的嵌套依赖项版本。您现在可以在
package.json
中指定overrides属性,以覆写并胁迫执行巢状相依性版本。因此
2.0.0
版本的bar
软件包将被foo
覆盖。