155

我正在尝试使用 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> 

where<package>可以是以下任何一项:

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

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

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

4

10 回答 10

197

使用 git 端点而不是包名:

bower install https://github.com/jquery/jquery.git#2.0.3
于 2013-10-13T19:30:55.670 回答
56

如果您使用 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: "..." 的条目之后,您只能bower update gmap3MarkerWithLabel在需要时执行。

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

bower ENOTFOUND 包 gmapV3MarkerWithLabel 未找到

于 2014-09-26T14:47:49.520 回答
22

针对特定的提交

远程(github)

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

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

本地(文件系统)

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

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

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

于 2014-11-06T06:47:56.290 回答
21

使用以下内容:

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

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

于 2015-05-28T23:06:26.897 回答
9

只是一个更新。

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

GitHub 速记

$ bower install desandro/masonry
于 2015-12-28T23:24:27.703 回答
7

只需指定 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

根据文档:支持以下类型的网址:

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)
于 2014-08-27T20:50:09.503 回答
7

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

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

例如:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}
于 2016-01-16T03:16:06.933 回答
3

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

于 2013-11-28T09:37:17.963 回答
3

尝试通过阅读发行版下的标签可以得到的标签号bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --save在哪里。1.0.3也用于 URL 替换git://,以便系统连接。

于 2017-01-26T01:43:55.520 回答
0

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

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

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

参考

于 2017-02-04T06:51:42.740 回答