什么是'bower.json`文件的解决方案和覆盖?

时间:2016-12-26 09:28:48

标签: json bower

bower.json文件中,resolutionoverrides属性用于哪些?

{
  "name": "name",
  "dependencies": {
    "angular": "~1.4.8",
    ...
    "jquery": "2.2.4"
  },
  "overrides": {
    "ionic": {
      "main": [
        "release/js/ionic.js",
        "release/js/ionic-angular.js"
      ]
    }
  },
  "resolutions": {
    "angular-ui-router": "~0.2.15",
    "angular": "~1.5.3"
  }
}

3 个答案:

答案 0 :(得分:11)

解决

当您需要在发生冲突时解析依赖关系版本(bower install之后)时,会出现解决方案部分。这是为了在需要解决依赖性冲突时决定使用哪个依赖项的具体版本 - bower自动将此决策注入“解析”记录。因此,下次发生冲突时(更新依赖关系树等),解析后的版本将基于配置文件中的“分辨率”数据。

An example dependency version conflict resolution prompt. The text in the image states: "Unable to find a suitable version for ember, please choose one: 1) ember#~1.0.0 which resolved to 1.0.1 and is required by ember-data#0. 2) ember#1.5.1 which resolved to 1.5.1 and required by melodrama"

<强>覆盖

覆盖部分用于在指向依赖库时覆盖文件引用。

大多数情况下,任务运行器使用bower配置库元数据将这些库的链接注入页面内容。当我们想要将引导链接注入页面时,我们不需要进入“bower_components”文件夹,找到包并调查文件内容。我们可以使用组件元数据来查找主要的可注入文件引用。

“覆盖”部分用于将此数据更改为使用其他文件,甚至是一组文件,作为包的主要入口点。

An example overrides section configuration for the bootstrap-sass-official package.

答案 1 :(得分:2)

多个Bower软件包可以将同一个库的不同版本列为依赖项。 resolutions部分指定在出现此类情况时要使用的库版本。如果未在bower.json中指定,则在运行bower install时将收到命令行提示。

使用像Gulp这样的任务运行程序时,overrides部分可以覆盖通过Bower安装的资产的默认路径。例如,如果您打算从bower_components文件夹中的默认位置移动文件以适应您的构建过程,那么在这种类型的设置中它可能会很方便。

答案 2 :(得分:0)

我们在bower.json文件中使用resolution对象来指定组件名称&amp;版本在运行bower命令时自动解决冲突。

覆盖部分用于在指向依赖库时覆盖文件引用。