【问题标题】:Installing a dependency with Bower from URL and specify version从 URL 安装 Bower 依赖项并指定版本
【发布时间】:2013-10-21 07:13:15
【问题描述】:

我正在尝试使用 URL 安装 Bower 依赖项。从 Bower 文档开始:

Bower 提供了几种安装软件包的方法:

    # Using the dependencies listed in the current directory's bower.json 
    bower install
    # Using a local or remote package 
    bower install <package>
    # Using a specific version of a package 
    bower install <package>#<version>
    # Using a different name and a specific version of a package 
    bower install <name>=<package>#<version> 

其中&lt;package&gt; 可以是以下任意一项:

  • 映射到在 Bower 注册的包的名称,例如 jquery。
  • 远程 Git 端点,例如,git://github.com/someone/some-package.git。 可以是公共的或私有的。
  • 本地端点,即作为 Git 存储库的文件夹。
  • 简写端点,例如,someone/some-package (默认为 GitHub)。
  • 文件的 URL,包括 zip 和 tar 文件。 其内容将被提取。

但是,它说,除了 URL 之外的所有类型都允许指定版本。

如何为 URL 下载的依赖项指定版本?

【问题讨论】:

    标签: bower


    【解决方案1】:

    从 git 安装包并保存到 bower.json 依赖块。

    1. bower register package-name git-endpoint#version
    2. install package-name --save

    --save 会将包名版本保存在依赖块内的 bower.json 文件中)。

    Reference

    【讨论】:

      【解决方案2】:

      尝试bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --save,其中1.0.3 是标签号,您可以通过阅读版本下的标签获得。也可以将 URL 替换为 git:// 以便系统连接。

      【讨论】:

        【解决方案3】:

        如果你使用 bower.json 文件来指定你的依赖:

        {
             "dependencies": {
                 ...
                 "photo-swipe": "git@github.com:dimsemenov/PhotoSwipe.git#v3.0.x",
        
        #bower 1.4 (tested with that version) can read repositorios with uri format
        
                 "photo-swipe": "git://github.com/dimsemenov/PhotoSwipe.git#v3.0.x",
        
             }
        }
        

        请记住 bower 还搜索已发布的版本和标签,因此您可以指向几乎所有内容,并且可以解释基本查询模式,如前面的示例。这将获取 3.0 版的最新次要更新(从 bower 1.3.5 测试)

        更新,因为问题描述还提到仅使用 URL 而未提及 github 存储库。

        另一个例子是使用所需的 url 执行此命令,例如:

        bower install gmap3MarkerWithLabel=http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0/src/markerwithlabel.js -S
        

        该命令下载您的 js 库放入 {your destination path}/gmap3MarkerWithLabel/index.js 并自动在您的 bower.json 文件中创建一个名为 gmap3MarkerWithLabel: "..." 的条目之后,您只能执行 @987654323 @如果需要。

        有趣的是,如果您执行逆向操作(手动添加 bower.json 中的条目,然后是 bower 安装 entryName)它不起作用,您会得到一个

        bower ENOTFOUND 包 未找到 gmapV3MarkerWithLabel

        【讨论】:

        • ++ 关于反向执行该过程的警告
        • 截至 2018 年。人们应该离开 Bower,不再进行开发,并使用任何其他包管理工具,如 Yarn。我们遇到了许多问题,因为许多 3rd 方库开发人员停止发布 bower 包以采用更好的标准化方式。 Yarn 比 Bower 快得多,而且非常容易迁移。
        【解决方案4】:

        只需指定 uri 端点对我有用,bower 1.3.9

          "dependencies": {
            "jquery.cookie": "latest",
            "everestjs": "http://www.everestjs.net/static/st.v2.js"
          }
        

        运行bower install,我收到以下输出:

        bower new           version for http://www.everestjs.net/static/st.v2.js#*
        bower resolve       http://www.everestjs.net/static/st.v2.js#*
        bower download      http://www.everestjs.net/static/st.v2.js
        

        您也可以尝试更新凉亭

        • npm update -g bower

        根据documentation:支持以下类型的url:

        http://example.com/script.js
        http://example.com/style.css
        http://example.com/package.zip (contents will be extracted)
        http://example.com/package.tar (contents will be extracted)
        

        【讨论】:

          【解决方案5】:

          针对特定的提交

          远程(github)

          使用 github 时,请注意,您还可以通过将其提交哈希附加到其克隆 url 的末尾来定位特定提交(例如,您已创建和更新的 fork)。例如:

          "dependencies": {
            "example": "https://github.com/owner_name/repo_name.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
          }
          

          本地(文件系统)

          如果您使用项目的 .git 目录,也可以在本地文件系统中以 git 提交为目标,如下所示(在 Windows 上;注意正斜杠):

          "dependencies": {
            "example": "file://C:/Projects/my-project/.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
          }
          

          这是测试您已在本地提交但尚未推送到存储库的库代码的一种方法。

          【讨论】:

          • 谢谢!我正在使用带有补丁的分叉凉亭组件,它会根据该 repo 的主凉亭文件不断安装最新版本。添加提交哈希允许我下载我的最新版本。
          • 我们可以使用分支名称吗?
          【解决方案6】:

          使用以下内容:

          bower install --save git://github.com/USER/REPOS_NAME.git
          

          更多: http://bower.io/#getting-started

          【讨论】:

            【解决方案7】:

            这是安装特定标签或通过 bower.json 从 GitHub 提交的便捷快捷方式。

            {
              "dependencies": {
                "your-library-name": "<GITHUB-USERNAME>/<REPOSITORY-NAME>#<TAG-OR-COMMIT>"
              }
            }
            

            例如:

            {
              "dependencies": {
                "custom-jquery": "jquery/jquery#2.0.3"
              }
            }
            

            【讨论】:

            • 出于好奇,是否可以从存储库中定位特定目录? git@git-url.git#v0.1.0/directory ?
            【解决方案8】:

            只是一个更新。

            现在,如果它是一个 github 存储库,那么如果您当然不介意版本,那么只使用 github 速记就足够了。

            GitHub 速记

            $ bower install desandro/masonry
            

            【讨论】:

              【解决方案9】:

              我相信指定版本仅适用于 git-endpoints。而不是文件夹/压缩包。当您将 bower 指向 js-file/folder/zip 时,您已经指定了包 版本(确实除了 js)。因为一个包有 bower.json 里面有版本。 当您将 bower 指向可以具有多个软件包版本的存储库时,在“bower install”中指定版本是有意义的。我认为只能是 git。

              【讨论】:

                【解决方案10】:

                使用 git 端点而不是包名:

                bower install https://github.com/jquery/jquery.git#2.0.3
                

                【讨论】:

                • 这是一个 Git 端点,可以指定版本控制。例如,如果您直接指定一个 Javascript 文件,这将不起作用
                • 最新版本的 bower 允许使用 URL。
                • 顺便说一句:也适用于svn,例如bower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
                • 如果在尝试从 git 安装时遇到错误 ENORESTARGET URL sources can't resolve targets,则必须将 https://github.com/jquery/jquery 更改为 https://github.com/jquery/jquery.git(添加 .git
                • bower 是否规范化版本标签以在其前面加上 v?当我执行bower install https://github.com/my/repo.git#1.0.0 时,即使我推送的实际标签名为v1.0.0,它仍然有效。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-03-26
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多