bower中有一个resolutions字段可以进行配置,在bower.json中,添加这个字段,可以用来解决一些版本冲突问题,它的写法和dependencies是一样的,但是它的作用主要是指当依赖的包存在版本冲突时,使用哪一个包。
比如你的applicationA中依赖两个包B,C,而B和C都依赖第三个包D,可是依赖的版本不一样,比如B依赖~1.5.0,而C依赖^1.6.0,这个时候,bower在A中执行install的时候,会提示信息,比如:
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.0.14 2) ember#1.5.1 which resolved to 1.5.1 and is required by melodrama
这个时候你手动选择,可以选2,然后回车。
但是如果在A的bower.json中加入resolutions这个字段后就不一样了:
"resolutions": { "D": "~1.5.0" }
这个时候在A中执行bower install不会提示上面的信息,而是直接使用~1.5.0作为版本号。
resolutions的作用就是在所依赖的包依赖的第三方包版本冲突时,用resolutions中规定的版本号来确认。
一般来说,只有在application中的bower.json中才这样做,也就是说一般发布的component中不要使用resolutions这个字段,如果是在一个component的json里去写,反而可能引起一些更复杂的问题。
2017-03-14 4536