如何覆盖嵌套的NPM依赖版本?

我想使用grunt-contrib-jasmineNPM软件包。它具有各种依赖性。依赖图的一部分如下所示:

─┬ 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

回到顶部