当前位置: 首页 > 知识库问答 >
问题:

如何重写嵌套的NPM依赖项版本?

翟誉
2023-03-14
─┬ grunt-contrib-jasmine@0.4.1
 │ ├─┬ grunt-lib-phantomjs@0.2.0
 │ │ ├─┬ phantomjs@1.8.2-2

一些额外的上下文:

  • grunt-contrib-jasmine显式要求grunt-lib-phantomjs的版本“~0.2.0”,显式要求phantomjs的版本“~1.8.1”.
  • 首先向我的包的依赖项添加phantomjs没有效果;这两个版本都已安装,grunt-contrib-jasmine仍然使用旧版本(请参见:使用NPM安装包时,是否可以告诉它使用其依赖项的不同版本?)。

共有1个答案

傅献
2023-03-14

您可以使用npm shrinkwrap功能来覆盖任何依赖项或子依赖项。

我刚刚在我们的一个grunt项目中做到了这一点。从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在为项目安装时应自动拾取它。

 类似资料:
  • 问题内容: 我想使用NPM软件包。它具有各种依赖性。依赖图的一部分如下所示: 不幸的是,此版本中存在一个错误,导致该错误无法在Mac OS X上正确安装。此问题已在最新版本中修复。 如何获得更新版本的? 一些其他上下文: 明确要求版本为,明确要求版本为。 首先添加到我程序包的依赖项没有任何作用;这两个版本均已安装,并且仍使用旧版本 问题答案: 您可以使用npm收缩包装功能,以覆盖任何依赖性或子依赖

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

  • npm是否有安装依赖作为对等依赖的选项,如yarn选项,而不是手动添加它例如: 感谢@Broncha,更新问题的更多说明 问题是如何向项目添加对等依赖。那就是 将依赖项添加到package.json中的“dependencies”中, 如何安装将其添加到package.json?中的“对等依赖”的依赖项

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

  • 我在父母pom中有一个依赖管理部分,比如 还有一个孩子pom 我试图使用强制执行器插件防止这种在子pom中重写,只允许在父级中设置这些,但一直无法。我希望这会使构建失败。有可能吗,使用那个插件或其他方式? 还有DependencyConvergence,它强制所有版本都是相同的,但这太严格了,因为我不想控制所有可传递的依赖项,只想控制显式定义的依赖项。 如果我能阻止在子pom中引入任何新的依赖项,

  • 问题内容: 我想问问是否有可能(通常是一个好主意)使用npm处理前端依赖项(Backbone,jQuery)。 我发现Backbone,jQuery等都可以通过npm获得,但我必须设置另一个提取点(默认为)或symlink或其他东西。 有人做过吗? 可能吗? 我必须更改什么? 问题答案: 简短的答案: 有点 。 在很大程度上要由模块作者来支持,但这并不常见。Socket.io是此类支持模块的示例,