如何使用bower安装存储库的最新(未打标签)状态?

164

在我的仓库中,我只使用主分支进行所有开发工作,并将标签用作历史上的“稳定”点。

我猜默认情况下 Bower 似乎会获取存储库的最新标记版本。我正在尝试获取主分支中最近的提交。

我尝试以各种可能的顺序运行了所有这些命令:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

我也尝试向我的bower.json文件中添加latest:

"dependencies": {
  "mypackage": "latest"
}

然后运行:

bower update mypackage
无论看起来如何,它似乎总是获取最新的已标记状态。
我如何获取项目的最新、最新的未打标签状态?

1
完整文档请参见 https://github.com/bower/bower.json-spec - Jaider
6个回答

220

使用 git commit SHA 来代替版本号:

bower install '<git-url>#<git-commit-sha>'

例子:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

你也可以指定一个分支而不是SHA,但一般情况下除非它处于开发状态并且您控制所有部分,否则不建议这样做。


1
是的,昨晚我阅读了GH问题跟踪器中关于这一切的所有讨论,并安装了bower#0.9.3-rc0。您是正确的先生。谢谢! - John
32
现在,你可以只使用 <git-url>#<branch-name> 而不是添加 SHA-ID。因此,你也可以使用 <git-url>#master 来跟踪主分支。 - MKroehnert
3
不过,对于我的私有仓库似乎没有用。我正在尝试指定提交 ID,但会返回一个错误:“fatal:reference is not a tree:”。看起来它正在尝试在容器的 git 仓库中查找修订版本。 - Nilesh
1
我也遇到了致命错误:引用不是树。非常烦人。 - Seiyria
如果你已经安装了一个新版本,但是想要强制安装一个旧版本,你该如何在 package.json 中实现呢? - SuperUberDuper

112
可以指向 git url,或者使用 name/repo 简写(GitHub 上的仓库):
bower.json
{
  "name": "bower-test",
  "dependencies": {
    "dpm": "git@github.com:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

文档中了解更多信息。

正如@roi在评论中指出的那样,您可以使用--save标志将依赖项自动添加到bower.json中,例如:bower install terinjokes/docker-npmjs --save


1
是否可以选择一个版本? - Tjorriemorrie
12
是的,你可以遵循文档中列出的<package>#<revision>.格式。因此,要在“master”分支中使用最新版本的jQuery,你可以这样做:git@github.com:jquery/jquery.git#master或者简写为jquery/jquery#master - Nick Tomlin
6
我会建议你使用CLI将它添加到你的bower.json文件中,这样你就能更好地运用它了。命令如下:bower install terinjokes/docker-npmjs --save - Roi
1
我们也可以使用 # 符号来提及版本/标签,如下所示 - xyz-components": "git@github.sample.com:username/reponame.git#0.4.5 - Nitin

32

5
дёәдәҶжҫ„жё…masterеҲҶж”ҜпјҢжӮЁйңҖиҰҒй”®е…Ҙxxx#masterпјҢиҖҢдёҚжҳҜxxx#master-branchгҖӮ - Andy Fleming

17

如果您正在使用bower.json文件,则可以在依赖项或devDependencies中的一行中指定分支的最新版本,以适合您的项目配置:

"angular-bootstrap": "git@github.com:angular-ui/bootstrap.git#bootstrap3",

当你运行时,将安装该分支的最新版本。在这个例子中,安装的是angular-uibootstrap3分支。

这个在本地可以运行,但在Heroku上会失败。你应该使用git://github.com/angular-ui/bootstrap.git#bootstrap3代替。 - Michael Yagudaev

15
bower install --save package-name#master

添加这个:

"dependencies": {
  "package-name": "master"
}

10

使用 bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "git@github.com:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

在哪里

"[library name - in this case a forked version of fullpage.js]" : "[from git clone box in github][#commit number if required - without this you will get latest tagged version]"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接