如何覆盖嵌套的NPM依赖版本?
我想使用grunt-contrib-jasmine
NPM软件包。它具有各种依赖性。依赖图的一部分如下所示:
─┬ grunt-contrib-jasmine@0.4.1 │ ├─┬ grunt-lib-phantomjs@0.2.0
│ │ ├─┬ phantomjs@1.8.2-2
不幸的是,此版本中存在一个错误phantomjs
,导致该错误无法在Mac OS X上正确安装。此问题已在最新版本中修复。
一些其他上下文:
grunt-contrib-jasmine
明确要求版本"~0.2.0"
为grunt-lib-phantomjs
,明确要求版本"~1.8.1"
为phantomjs
。- 首先添加
phantomjs
到我程序包的依赖项没有任何作用;这两个版本均已安装,并且grunt-contrib-jasmine
仍使用旧版本
回答:
您可以使用npm收缩包装功能,以覆盖任何依赖性或子依赖性。
我刚刚在我们的一个艰苦的项目中做到了这一点。从2.7.3开始,我们需要更新版本的connect。给我们带来麻烦 所以我创建了一个名为npm-shrinkwrap.json的文件:
{ "dependencies": {
"grunt-contrib-connect": {
"version": "0.3.0",
"from": "grunt-contrib-connect@0.3.0",
"dependencies": {
"connect": {
"version": "2.8.1",
"from": "connect@~2.7.3"
}
}
}
}
}
在安装项目时,npm应该会自动将其拾取。
(请参阅:https : //nodejs.org/en/blog/npm/managing-node-js-dependencies-
with-shrinkwrap/)
以上是 如何覆盖嵌套的NPM依赖版本? 的全部内容, 来源链接: utcz.com/qa/421147.html