我在Twitter上尝试Bower来管理我的客户端依赖项。如何使用Bower安装OpenLayers等库?
但我现在面临一个讨厌的问题:除了少数大玩家(jQuery,当然,Bootstrap由Twitter),许多图书馆(他们中的大多数其实)没有一个component.json
文件,从而似乎并不支持鲍尔。
这是OpenLayers,这是一个很大的球员,因此我惊讶地发现他们不支持鲍尔。
我在这里错过了什么吗?还是有这些大型图书馆目前支持的更常见的依赖管理者?
我在Twitter上尝试Bower来管理我的客户端依赖项。如何使用Bower安装OpenLayers等库?
但我现在面临一个讨厌的问题:除了少数大玩家(jQuery,当然,Bootstrap由Twitter),许多图书馆(他们中的大多数其实)没有一个component.json
文件,从而似乎并不支持鲍尔。
这是OpenLayers,这是一个很大的球员,因此我惊讶地发现他们不支持鲍尔。
我在这里错过了什么吗?还是有这些大型图书馆目前支持的更常见的依赖管理者?
你可以只添加以下的依赖:
"dependencies": {
"OpenLayers" : "http://openlayers.org/download/OpenLayers-2.12.zip"
}
,并再次运行bower install
。
更新 的Sindre言论在此之后的conf打破了bower upgrade
你应该依靠这样的事情:bower install openlayers --save
但要注意,如果你依赖于它的文物不会在回购versionned,你会必须在开发工作流程中构建它们。这意味着安装了一些更多的工具,并理解它们等。
只有当库具有依赖性时才需要组件文件,否则使用git标签。
你可以做bower install openlayers
,因为它在注册表中,否则你可以使用url到git repo或zip/tar文件:bower install git://github.com/openlayers/openlayers.git
。
我有一些“有趣”的时候遇到这样做,我包括一个referece在我的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"
}
}
}
这定义缺失的主要标志。
使用硬编码路径会导致'bower upgrade'不起作用。如果可能,最好使用git回购。 – 2013-02-25 10:51:12
使用git repo是要走的路,你是绝对正确的。但是,如果文物在回购中没有版本呢?我们不应该在我们自己的构建工作流程中包含构建依赖关系。这就是为什么我们看到仅包含工件的裸回购(参见'bowerized'角模块的回购)。 – 2013-02-25 15:31:04
这是一个明显的缺点,但这真的取决于维护人员来修复包管理器。您有多个可用选项。做出明智的选择。 – 2013-02-25 22:02:57