指示 bower 默认使用精确版本,而不是范围

Posted

技术标签:

【中文标题】指示 bower 默认使用精确版本,而不是范围【英文标题】:Instruct bower to use exact version by default, not range 【发布时间】:2016-05-11 14:57:39 【问题描述】:

当发布bower install mypackage --save 时,默认情况下,对于版本,bower 使用波浪号范围选择器 (~) 前缀来表示最新的补丁版本:

"angular-ui-grid": "~3.1.0"

因为实际上补丁版本确实会导致重大更改(我们现在使用 dependencies 包已经经历了四次),我们希望更改行为以使用精确版本的 semver 代替:

"angular-ui-grid": "3.1.0"

有没有办法自动执行此操作或将 exact 匹配设置为默认值?我不能指望开发团队的成员在每次添加凉亭包时记得删除~

【问题讨论】:

【参考方案1】:

你有read the documentation吗?看起来 -E--save-exact 是你需要的。

编辑:刚刚测试过。这就是你需要的。您的命令将是

bower install mypackage --save-exact

如果您想将其设为默认值,请在您的主目录和/或项目目录中创建一个.bowerrc,例如:


  "save-exact": true

【讨论】:

我只是在阅读文档,并认为我可以补充一点,Bower 也有安装前/安装后挂钩。您还可以运行脚本来检查/删除 bower.json 文件中版本号中的 ~,或者(如果幸运的话)以某种方式强制将 -E 参数传递给 bower。 谢谢,苏尼尔。这实际上非常有帮助。不幸的是,当我们有全栈开发人员处理前端代码时,信任开发人员记住“--save-exact”是不现实的。 为了强制执行-E,如果您正在运行 BASH shell,您可以轻松地将其设为别名。 alias bower='bower -E' 之类的东西会放在 .bash_profile 脚本中;或者更全局,可以放在/etc/profile

以上是关于指示 bower 默认使用精确版本,而不是范围的主要内容,如果未能解决你的问题,请参考以下文章

自动化构建之bower

在 Meteor 中安装和使用 bower 的正确方法是啥?

如何使用 bower 下载 ember canary 版本

bower(和 npm)版本语法是啥?

Bower:安装 2 个版本的 jQuery

如何使用 bower 获得最新版本的 Polymer 元素?