我正在 Twitter 上尝试使用Bower来管理我的客户端依赖项。
但我面临一个令人讨厌的问题:除了一些大玩家(jQuery,当然还有Twitter 的Bootstrap),许多库(实际上大多数)没有component.json
文件,因此似乎没有支持鲍尔。
OpenLayers就是这种情况,它是一个大玩家,因此我惊讶地发现他们不支持 Bower。
我在这里错过了什么吗?还是这些大型库目前支持的更常见的依赖管理器?
我正在 Twitter 上尝试使用Bower来管理我的客户端依赖项。
但我面临一个令人讨厌的问题:除了一些大玩家(jQuery,当然还有Twitter 的Bootstrap),许多库(实际上大多数)没有component.json
文件,因此似乎没有支持鲍尔。
OpenLayers就是这种情况,它是一个大玩家,因此我惊讶地发现他们不支持 Bower。
我在这里错过了什么吗?还是这些大型库目前支持的更常见的依赖管理器?
您可以将以下内容添加为依赖项:
"dependencies": {
"OpenLayers" : "http://openlayers.org/download/OpenLayers-2.12.zip"
}
并bower install
再次运行。
更新
在 Sindre 评论后,这个 conf 打破了bower upgrade
你应该依赖这样的东西:bower install openlayers --save
但请注意,如果您所依赖的工件没有在 repo 中进行版本控制,您将不得不在您的开发工作流程中构建它们。这意味着安装更多工具并了解它们等。
仅当库具有依赖项时才需要组件文件,否则使用 git 标签。
您可以这样做,bower install openlayers
因为它在注册表中,否则您可以使用 git repo 或 zip/tar 文件的 url bower install git://github.com/openlayers/openlayers.git
:.
openlayers#2.13.1 可通过 Bower 安装
当我这样做时,我有一些“乐趣”,当我运行 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"
}
}
}
这定义了缺少的主令牌。
你也可以使用 npm 来安装 openlayers。https://www.npmjs.com/package/openlayers
npm install ol