当前位置: 首页 > 面试题库 >

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

慕乐语
2023-03-14
问题内容

我想使用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-lib-phantomjs更新版本的phantomjs

一些其他上下文:

  • 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安装包时,是否可以告诉它使用其依赖项的不同版本?)。

  • 问题内容: 如果我的包裹有这些依赖 而包有这些依赖 的最新版本是,的第一次运行将安装在。 如何强制纱线将其用于包装? 我的理解是,使用可以做到这一点。 我的问题的摘要可能是:纱线创建可重复的确定性安装,但是如何自定义该安装? 问题答案: 如果实际上您确实对要接受的版本具有过分的限制,则 可以 使用yarn覆盖它们。 更新编辑: 从1.0开始,Yarn现在正式支持 “ resolutions”块。因

  • 我有这样配置的父pom: 我的孩子波姆: 我想在我的类路径中使用4.3.5版本,因为目前我收到错误消息,不应修改父版本: 任何想法如何防止覆盖4.2.9版本?

  • Github已经将我的应用锁文件中的依赖项标记为易受攻击。 要修复它,我应该将该包更新到一个较新的版本。 抱歉,如果这是一个非常基本的问题,但我似乎没有找到任何有用的关于这一点。

  • 问题内容: 在其中,您可以选择覆盖依赖项,并使其指向其他存储库,例如在以下https://github.com/kubermatic/glog- logrus 库中,您需要在Gopkg.toml文件中添加以下几行: 然后在代码库中。但是,在go模块中,我看不到这样的选择吗?这使我认为唯一的解决方案是将import更改为。 谢谢! 问题答案: 这就是指令的目的。 引用Wiki Go 1.11模块:我

  • 如果我有一个OSGI Bundle jar中嵌套了依赖项jar,我是否需要在导入包清单中列出这些类以便使用它们?我不这么认为。 另外,我如何将这些依赖项jar添加到我的包中。我只是把它们放在根文件夹里吗?我是否需要向清单文件添加任何内容才能使用这些依赖关系?