如何强制Bower安装某个依赖的特定版本

32
假设有一个 bower.json 文件,其中的依赖关系如下:
"dependencies": {
    "angular": "~1.5.x",
    "angular-routing": "*",
    "ngDialog": "*",
    "requirejs": "*"
}

由于 angular-routing 需要另一个版本的 angular (比如 1.2.x),因此 bower 提示我选择一个版本。

我该如何强制 bower 自动安装 angular ~1.5.x

3个回答

40

我找到了答案,现在分享给大家:

如果我在bower.json中的resolutions属性中添加我喜欢的版本的依赖项,那么Bower将会自动安装它。这是我的更新后的bower.json文件:

"dependencies": {
  "angular": "~1.5.x",
  "angular-routing": "*",
  "ngDialog": "*",
  "requirejs": "*"
},
"resolutions": {
  "angular": "~1.5.x"
}

此处提供更多信息。

更新:
如Mattliu在评论中提到的,当任何库要求安装已经安装的依赖项的另一个版本时,可以使用来回答。这样,您将保留现有版本,并且npm会自动创建resolution配置。


如果您找到了更好的解决方案,请告诉我。 - Reyraa
当您被要求选择一个版本时,您也可以在选择前加上 !,它将自动使用 "resolutions" json 更新您的 bower.json - mattliu
@mattliu 谢谢。我会更新我的答案以包含这个。 - Reyraa

38
如果您想严格安装JQuery 2.1.4并将其添加到您的bower.json依赖项中,您需要按照以下步骤进行操作。
bower install jQuery#2.1.4 --save

2
这不需要手动修改bower.json。这应该是可接受的答案。 - devXen

5
  • 您需要在bower.json中指定版本。
  • 请注意,使用波浪符号将自动解析为任何更新的次要版本
  • 因此,指定~1.5.x将拉取1.5.1(如果存在)
  • 要指定精确版本,请删除波浪符号,例如指定"1.5.1"

谢谢。你是对的。我的问题在于Angular 1.2.x1.5.x之间存在重大差异,这是一个破坏性的变化。这就是为什么我喜欢在1.5.x中有任何补丁版本,但不包括其他次要版本。 - Reyraa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接