如何解决Bower依赖版本冲突?

Yan*_*ang 64 bower

我有一个项目取决于两者:

  • jquery~1.9.1
  • 另一个项目又取决于jquery> = 1.7.2

但是当我运行时bower install,它最终会安装jquery 2.0.2.这似乎破了.

我如何(a)正确解决约束或(b)明确强制安装最终版本(解决方法)?

Rak*_*hat 114

您可以添加resolutionsbower.json文件中的对象,并指定组件名称和版本,以便在运行bower命令时自动解决冲突.像这样:

{
  "name": "project-x",
  "private": true,
  "dependencies": {
    "bootstrap-sass": "~3.3.7",
    "modernizr": "~2.8.3",
    "jquery": "~1.11.3"
  },
  "devDependencies": {},
  "resolutions": {
    "jquery": "~1.11.3"
  }
}
Run Code Online (Sandbox Code Playgroud)

此外,你可以运行bower install,当凉亭要求"合适的版本"(如果开启交互模式),前缀选择!,所以凉亭将您的选择保存到bower.json文件.

  • 要添加到@neilhem回答:如果交互模式关闭,bower install将不会询问"合适的版本".[更多信息](http://bower.io/docs/api/#non-interactive-mode) (3认同)
  • 这个解决方案对我不起作用.它似乎没有什么区别.它是否需要某个版本的Bower,而且我的版本太旧了(它是从npm安装的,所以无论那个版本是什么). (2认同)
  • @AlonAmir npm使用嵌套依赖树.更多信息http://stackoverflow.com/questions/18641899/what-is-the-difference-between-bower-and-npm (2认同)