根据 NPM 官方文档,overrides
in package.json
允许用另一个包完全覆盖一个包:
覆盖提供了一种替换依赖树中的包的方法
与另一个版本,或完全另一个包。这些改变可以
根据需要将范围设定为具体或模糊。
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
但是,我不知道如何用同一包的更改版本以外的任何内容替换包。
我正在尝试更换node-sass
with 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。
实际上是否可以将一个包完全替换为另一个包,或者我是否误解了文档中所写的内容?
基于一个链接的 Github 问题中的评论 https://github.com/npm/cli/issues/4909#issuecomment-1144837588在@Phil的评论中,我能够完全通过使用npm:
prefix:
"overrides": {
"dependency": {
"node-sass": "npm:[email protected] /cdn-cgi/l/email-protection"
}
}
没有相关记录overrides
据我所知,所以我不知道该功能在多大程度上受支持,但它似乎至少在基本情况下有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)