指示 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 默认使用精确版本,而不是范围的主要内容,如果未能解决你的问题,请参考以下文章