2013-02-24 93 views
3

我在Twitter上尝试Bower来管理我的客户端依赖项。如何使用Bower安装OpenLayers等库?

但我现在面临一个讨厌的问题:除了少数大玩家(jQuery,当然,Bootstrap由Twitter),许多图书馆(他们中的大多数其实)没有一个component.json文件,从而似乎并不支持鲍尔。

这是OpenLayers,这是一个很大的球员,因此我惊讶地发现他们不支持鲍尔。

我在这里错过了什么吗?还是有这些大型图书馆目前支持的更常见的依赖管理者?

回答

8

你可以只添加以下的依赖:

"dependencies": { 
    "OpenLayers" : "http://openlayers.org/download/OpenLayers-2.12.zip" 
} 

,并再次运行bower install

更新 的Sindre言论在此之后的conf打破了bower upgrade你应该依靠这样的事情:bower install openlayers --save

但要注意,如果你依赖于它的文物不会在回购versionned,你会必须在开发工作流程中构建它们。这意味着安装了一些更多的工具,并理解它们等。

+1

使用硬编码路径会导致'bower upgrade'不起作用。如果可能,最好使用git回购。 – 2013-02-25 10:51:12

+3

使用git repo是要走的路,你是绝对正确的。但是,如果文物在回购中没有版本呢?我们不应该在我们自己的构建工作流程中包含构建依赖关系。这就是为什么我们看到仅包含工件的裸回购(参见'bowerized'角模块的回购)。 – 2013-02-25 15:31:04

+0

这是一个明显的缺点,但这真的取决于维护人员来修复包管理器。您有多个可用选项。做出明智的选择。 – 2013-02-25 22:02:57

5

只有当库具有依赖性时才需要组件文件,否则使用git标签。

你可以做bower install openlayers,因为它在注册表中,否则你可以使用url到git repo或zip/tar文件:bower install git://github.com/openlayers/openlayers.git

4

的OpenLayers#2.13.1是通过鲍尔安装

+1

也许它已经改名为openlayers#release-2.13 – Tarnschaf 2015-10-07 09:15:48

2

我有一些“有趣”的时候遇到这样做,我包括一个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" 
    } 
} 
} 

这定义缺失的主要标志。