我正在试试Twitter上的人Bower来管理我的客户端依赖。
但是我面临一个令人讨厌的问题:除了一些大玩家(jQuery,当然还有Twitter的Bootstrap),许多图书馆(其中大多数,实际上)都没有有一个component.json
文件,因此似乎不支持Bower。
这是OpenLayers的情况,这是一个很大的参与者,因此我很惊讶他们发现他们不支持Bower。
我在这里遗漏了什么吗?或者这些大型图书馆目前是否支持更常见的依赖管理器?
答案 0 :(得分:8)
您只需将以下内容添加为依赖项:
"dependencies": {
"OpenLayers" : "http://openlayers.org/download/OpenLayers-2.12.zip"
}
再次运行bower install
。
<强>更新强>
在Sindre发表评论之后,这个混淆了bower upgrade
你应该依赖这样的事情:bower install openlayers --save
但请注意,如果您依赖它的工件未在repo中进行版本控制,则必须在开发工作流程中构建它们。这意味着安装了更多工具,并了解它们等等。
答案 1 :(得分:5)
只有在库具有依赖关系时才需要组件文件,否则使用git标记。
你可以bower install openlayers
,因为它在注册表中,否则你可以使用网址到git repo或zip / tar文件:bower install git://github.com/openlayers/openlayers.git
。
答案 2 :(得分:4)
openlayers#2.13.1可通过Bower
安装答案 3 :(得分:2)
当我这样做时,我有一些“乐趣”,当我运行grunt serve时,我在index.html中包含对openLayers.js的引用,删除了对Openlayers.js的引用,并且wiredep报告了注入问题
问题是由于OpenLays的提供版本没有定义“主”令牌。
这就是你解决它的方法。
在你的html文件中,说
<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/openlayers/lib/OpenLayers.js"></script>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/jquery-ui/jquery-ui.js"></script>
<!-- endbower -->
<!-- endbuild -->
在bower.json文件中(项目根目录中的地雷)说
{
"name": "foobar",
"private": true,
"dependencies": {
"bootstrap": "~3.2.0",
"jquery-ui": "~1.11.2",
"jquery": "~2.1.1",
"openlayers": "1.0.0"
},
"overrides": {
"openlayers": {
"main": "lib/OpenLayers.js"
}
}
}
这定义了缺少的主令牌。
答案 4 :(得分:-2)
您还可以使用npm安装openlayers。 https://www.npmjs.com/package/openlayers
npm install ol