【问题标题】:How to install libraries such as OpenLayers with Bower?如何使用 Bower 安装 OpenLayers 等库?
【发布时间】:2023-03-06 05:12:01
【问题描述】:

我正在尝试使用 Twitter 人员的 Bower 来管理我的客户端依赖项。

但我面临一个令人讨厌的问题:除了一些大玩家(jQuery,当然还有 Twitter 上的 Bootstrap),许多图书馆(实际上大部分)都没有 @987654325 @ 文件,因此似乎不支持 Bower。

OpenLayers 就是这种情况,它是一个大玩家,因此我惊讶地发现他们不支持 Bower。

我在这里遗漏了什么吗?还是这些大库目前支持的更常见的依赖管理器?

【问题讨论】:

    标签: openlayers bower


    【解决方案1】:

    您可以只添加以下内容作为依赖项:

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

    然后再次运行bower install

    更新 在 Sindre 评论后,这个 conf 打破了bower upgrade,你应该依赖这样的东西:bower install openlayers --save

    但请注意,如果您依赖的工件没有在 repo 中进行版本控制,您将不得不在您的开发工作流程中构建它们。这意味着安装更多工具并了解它们等。

    【讨论】:

    • 使用硬编码路径会使bower upgrade 不起作用。如果可能,最好使用 git repo。
    • 使用 git repo 是要走的路,你是绝对正确的。但是如果仓库中没有对工件进行版本控制怎么办?我们不应该在我们自己的构建工作流程中包含构建我们的依赖项。这就是为什么我们看到只包含工件的裸仓库(参见“bowerized”角度模块的仓库)。
    • 这是一个明显的缺点,但这实际上取决于维护者来修复而不是包管理器。您有多种选择。明智地选择。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      openlayers#2.13.1 可通过 Bower 安装

      【讨论】:

      • 可能已经改名为 openlayers#release-2.13
      【解决方案4】:

      当我这样做时,我有一些“乐趣”,当我运行 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"
        }
       } 
      }
      

      这定义了缺少的主令牌。

      【讨论】:

        【解决方案5】:

        你也可以使用 npm 来安装 openlayers。 https://www.npmjs.com/package/openlayers

        npm install ol
        

        【讨论】:

        • 如果原始问题要求使用 bower 解决方案,为什么还要使用 npm?
        猜你喜欢
        • 2013-11-16
        • 1970-01-01
        • 2014-05-12
        • 2016-10-28
        • 2017-02-21
        • 2015-02-09
        • 2015-03-05
        • 2013-10-20
        • 2019-01-11
        相关资源
        最近更新 更多