gpt4 book ai didi

javascript - 用另一个包完全覆盖 NPM 包

转载 作者:行者123 更新时间:2023-12-05 03:19:02 25 4
gpt4 key购买 nike

根据官方 NPM 文档,package.json 中的 overrides 允许用另一个包完全覆盖一个包:

Overrides provide a way to replace a package in your dependency treewith another version, or another package entirely. These changes canbe scoped as specific or as vague as desired.

https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides

但是,除了同一包的更改版本之外,我无法弄清楚如何用任何其他包替换包。

我正在尝试将 node-sass 替换为传递依赖项中的 sass,但我尝试过的配置均无效。

"overrides": {
"node-sass": "sass@^1.3.0"
}

"overrides": {
"node-sass": {
".": "sass@^1.3.0"
}
}

以上任一配置都会产生以下 NPM 错误:

Invalid tag name "sass@^1.3.0": Tags may not have any characters that encodeURIComponent encodes.

如果我尝试一些更基本的东西:

"overrides": {
"node-sass": "sass"
}

NPM 错误:

No matching version found for node-sass@sass.

我正在使用 NPM v8.3.1。

是否真的可以用另一个包完全替换一个包,还是我误解了文档中的内容?

最佳答案

基于 comment in the Github issue linked在@Phil 的评论中,我能够通过使用 npm: 前缀完全用另一个包覆盖一个包:

"overrides": {
"dependency": {
"node-sass": "npm:sass@1.54.7"
}
}

据我所知,没有关于overrides 的文档,所以我不知道该功能在多大程度上受支持,但它似乎至少在基本情况下有效。

关于javascript - 用另一个包完全覆盖 NPM 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73549082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com