我有两个版本的软件包,例如:
@mycompany/mylob v2.0.0
和
@mycompany/mylib v3.0.0
版本3.0.0与版本2.0.0相比有了突破性的变化,但我们还没有能力将所有内容升级到3.0.0。
另一个开发人员升级了一个内部软件包,例如@mycompany/utils使用3.0.0版本,并且安装到我们的代码库中,因此现在我们在运行构建时遇到兼容性错误,因为@mycompany/utils需要3.0.0版本,但该存储库中的其余代码需要2.0.0版本。
有没有一种方法可以让我在yarn/npm中为@mycompany/utils安装@mycompany/mylib v3.0.0,并让其余代码引用v2.0.0?
3条答案
按热度按时间2admgd591#
可以使用custom alias installs:
npm i custom-name:@mycompany/mylib@3.0
您可以将
custom-name
更改为您想要使用的任何有效软件包名称。之后,您可以使用此别名导入包。例如:
require("custom-name")
/import * from "custom-name"
j2datikz2#
您可以为每个包显式地设置依赖项,它们将被处理。
package.json
你的答案就在这里Yarn:
https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/?fbclid=IwAR2aiwN7w5D-YX7kwB4gUITx3VacAuh1qzhJO0q_jGYDm6HjxRe8079GxWA
至于NPM,似乎没有任何原生的解决方案。你可以在这里看到这个答案:
npm equivalent of yarn resolutions?
qxgroojn3#
npm安装特定版本,使用npm install [package-name]@[version-number]。