【问题标题】:npm - how to override a dependent package's dependencies?npm - 如何覆盖依赖包的依赖项?
【发布时间】:2015-11-21 05:42:12
【问题描述】:

我在量角器上的 package.json 文件中有一个 Dev 依赖项

"protractor": "~2.1",

然而量角器使用的是旧版本的

"selenium-webdriver": "2.45.1",

我需要更新它以使用 2.46.1。如何在我的 package.json 文件中覆盖它?目前为了测试它,我去了 /node_modules/protractor/package.json 并在那里改变了它。 我查看了 npm-shrinkwrap 但这似乎锁定了所有包,我只想覆盖单个包

【问题讨论】:

标签: node.js


【解决方案1】:

NPM 8 引入了“覆盖”,它允许您覆盖直接依赖项的特定传递依赖项。对于您的用例,您可以声明如下内容。

{
  "overrides": {
    "protractor": {
      "selenium-webdriver": "2.46.1"
    }
  }
}

更多详情@https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides

【讨论】:

    【解决方案2】:

    对于您的问题,您可以使用名为 npm shrinkwrap 的名称。

    我认为他们是这样解释的。是的,你是对的,它锁定了依赖关系,但是,这样做你也想要同样的东西,你想要一些特定的依赖关系来满足你的需要。

    看看这个问题How do I override nested NPM dependency versions?

    【讨论】:

    • 但这似乎锁定了所有包依赖项,我只想覆盖一个。
    猜你喜欢
    • 2018-11-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2020-04-12
    • 2021-03-02
    • 1970-01-01
    • 2016-02-18
    • 2013-03-26
    相关资源
    最近更新 更多