我有一个使用凉亭的项目。
我的bower.json:
{
"name": "myproject",
"version": "0.0.0",
"dependencies": {
...
"angular-sanitize": "1.2.1",
...
然后我运行bower install。
然后我可以看到安装的内容:
➜ myproject git:(develop) ✗ ls app/bower_components/angular-sanitize/
README.md angular-sanitize.min.js bower.json
angular-sanitize.js angular-sanitize.min.js.map
然后一位同事检查了他的机器上的bower install
项目,这个依赖项安装在
app/bower_components/angular-sanitize/bower-angular-sanitize-v1.2.1/
而不是我原来的
app/bower_components/angular-sanitize/
。
那么为什么凉亭有时会将bower-angular-sanitize-v1.2.1 /添加到安装文件夹?
Notes :我们有同样的bower.json和版本的凉亭。如果我删除了我的bower_dependencies并重新安装,我仍然有旧文件夹。
修改
我的理解(玩过一段时间后用bower安装一个删除bower_components,清除bower缓存等)...
我的问题与凉亭如何解决决议有关。一旦bower提示您选择几个版本(jquery,angular和bootstrap),似乎解决了版本。
但仍有一些我不明白的事情:
在我的机器上,即使删除了bower缓存,删除bower_dependencies或将bower.json复制到新文件夹中,bower也不会在“bower install”后提示我解决方案(那么它们是如何存储的?)< / p>
在我的同事机器上,凉亭仅在他的原生系统上提示解决方案(而不是在“在阴道机中安装”凉亭时)。
所以,我还有一些不为人知的观点: bower如何存储依赖项解析?在任何地方都有关于此的文档吗?我找到的唯一一个地方就是一些github问题(以及通过玩弄它)。
我的bower.json:
{
"name": "myproject",
"version": "0.0.0",
"dependencies": {
"json3": "~3.2.4",
"bootstrap-sass": "~2.3.1",
"es5-shim": "~2.0.8",
"angular-cookies": "~1.2.1",
"angular-dragdrop": "<=1.0.4",
"angular-strap": "~0.7.1",
"angulartics": "~0.8.4",
"jquery": "~1.8.3",
"underscore": "~1.4.4",
"angular": "1.2.1",
"angular-route": "1.2.1",
"angular-resource": "1.2.1",
"angular-sanitize": "1.2.1",
"angular-ui-date": "~0.0.3",
"jquery.masonry": "v2.1.08",
"bootstrap": "~2.3.1",
"angular-bootstrap": "~0.10.0",
"highcharts": "~3.0.2",
"jqueryui-timepicker-addon": "~1.4",
"moment": "~2.0.0",
"bootstrap-notify": "0.1.0",
"mjaalnir-bootstrap-colorpicker": "~1.0.0"
},
"devDependencies": {
"angular-mocks": "~1.0.7",
"angular-scenario": "~1.0.7"
},
"resolutions": {
"jquery": "~1.8.3",
"angular": "1.2.1",
"bootstrap": "~2.3.1"
}
}
答案 0 :(得分:2)
我们在这里遇到同样的问题 - 似乎在安装时使用空缓存和空bower.json
目录在bower_components
内定义分辨率时,包将安装到bower_components/package/package-version
中,而如果您在安装期间以交互方式选择分辨率,然后将其安装到bower_components/package
中 - 因此,如果您遇到该问题,请清理缓存(例如bower cache clean
),删除已安装的组件(例如rm -rf bower_components/
)并从resolutions
然后bower.json
移除bower install
。
答案 1 :(得分:1)
我有同样的问题。我不得不通过每个依赖项并单独安装它,检查它的版本,然后在被问到时解决它的分辨率。一旦它工作,并没有把文件夹与包版本号,然后我保存bower.json与正确的版本和分辨率(再次,当被要求)。它对我有用,现在所有的bower依赖项都是版本化的,没有“*”或“latest”,有些甚至没有版本开头的“〜”。
希望这可以帮助您和每个人都面临这个问题。