从URL使用Bower安装依赖项并指定版本


154

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

以下何处<package>可以是:

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

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

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

Answers:


194

使用git端点代替包名:

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

8
这是一个Git端点,可以指定版本控制。例如,如果您直接指定Javascript文件,则该文件将不起作用
Edmondo1984

1
最新版本的Bower允许使用URL。
lfender6445 2014年

BTW:也可以合作svn,例如bower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo

5
如果您ENORESTARGET URL sources can't resolve targets在尝试使用git从git安装时遇到错误,则必须更改https://github.com/jquery/jqueryhttps://github.com/jquery/jquery.git(add .git
jakub.g

2
凉亭是否规范化了版本标签,以使其带有前缀v?当我执行bower install https://github.com/my/repo.git#1.0.0此操作时,即使我按下的实际标签被调用也可以v1.0.0
spinningarrow

54

如果使用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库,并将其放入{您的目标路径} /gmap3MarkerWithLabel/index.js中,并在bower.json文件中自动创建一个名为gmap3MarkerWithLabel的条目:“ ...”。此后,只有bower update gmap3MarkerWithLabel在需要时才能执行。

有趣的是,如果您进行流程落后(手动在bower.json中添加条目,然后在bower中安装entryName),则它不起作用,您会得到一个

bower ENOTFOUND包gmapV3MarkerWithLabel找不到


++ RE关于向后进行此过程的注意事项
jacob 2015年

从2018年开始。人们应该远离凉亭,而不再处于开发阶段,而应使用其他任何程序包管理工具(如Yarn)。我们遇到了许多第三方库开发人员停止发布Bower软件包以更好地标准化的问题。纱线比凉亭要快得多,而且真的很容易迁移。
le0diaz '18


21

定位特定的提交

远程(github)

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

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

本地(文件系统)

或者,如果您使用项目的.git目录,则可以在本地文件系统中定位git commit,例如(在Windows上;请注意正斜杠):

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

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


1
谢谢!我使用的是带有补丁的分叉Bower组件,它会根据该仓库的主Bower文件继续安装最新版本。添加提交哈希后,我就可以下载最新版本。
elliottregan

9

只是一个更新。

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

GitHub简写

$ bower install desandro/masonry

7

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

{
  "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/目录
Rhys

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

根据文档:支持以下类型的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)

3

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


3

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


0

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

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

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

参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.