使用来自 URL 的 Bower 安装依赖项并指定版本

我正在尝试使用一个 URL 与 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>

其中 <package>可以是下列任何一种:

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

然而,它说,除了 URL 之外的所有类型都允许指定一个版本。

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

114163 次浏览

使用 git 端点而不是包名:

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

我相信指定版本只对 git 端点有效。而不是文件夹/压缩文件夹。当您将 bower 指向一个 js-file/file/zip 时,您已经指定了软件包 还有版本(确实除了 js)。因为包中包含了包含 version 的 bower.json。 在“ bower install”中指定一个版本对于将 bower 指向一个包含多个版本的存储库是有意义的。我想只能是笨蛋。

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

你也可以尝试更新 Bower

  • 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)

如果使用 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 target path }/gmap3MarkerWithLabel/index.js 并自动在 bower.json 文件中创建一个名为 gmap3MarkerWithLabel 的条目: “ ...”之后,如果需要,您只能执行 bower update gmap3MarkerWithLabel

有趣的是,如果进行反向战争(在 bower.json 中手动添加条目,然后在 bower install entryName 中添加条目) ,它就不起作用,那么会得到一个

包装盒 找不到 gmapV3MarkerWithLabel

针对特定的提交

远程(github)

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

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

本地(文件系统)

或者,如果使用项目的。Git 目录,如下所示(在 Windows 上; 注意前斜杠) :

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

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

使用以下方法:

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

更多相关资料: Http://bower.io/#getting-started

只是最新情况。

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

GitHub 的简写

$ bower install desandro/masonry

这里有一个简便的方法来安装特定的标记或通过 bower.json从 GitHub 提交。

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

例如:

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

试试 bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --save,其中 1.0.3是标签编号,您可以通过读取发行版下的标签来获得它。也用于 URL 替换为 git://,以便系统连接。

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

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

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

参考文献