Version control 鲍尔版本控制最佳实践?

Version control 鲍尔版本控制最佳实践?,version-control,version,bower,dependency-management,Version Control,Version,Bower,Dependency Management,我想知道如何才能确保我的bower版本配置在将来是可行的? 例如,我已经接触过多个项目,这些项目要么告诉我如何使用 ">=1.0.0" "~1.0.0" 阿法伊 ">=" tells that all versions above 1.0.0 are fine "~" tells all versions/minor updates on 1.0.x are fine 更具体地说: "dependencies": { "angular": ">=1.3.0", "

我想知道如何才能确保我的bower版本配置在将来是可行的? 例如,我已经接触过多个项目,这些项目要么告诉我如何使用

">=1.0.0"
"~1.0.0"
阿法伊

">=" tells that all versions above 1.0.0 are fine
"~"  tells all versions/minor updates on 1.0.x are fine
更具体地说:

"dependencies": {
  "angular": ">=1.3.0",
  "bootstrap": ">=3.2.0",
  "jquery": "~2.1.0",
}
在编写本代码之日,包括以下版本配置:

angular:   1.3.1
bootstrap: 3.2.0
jquery: 2.1.0
angular:   1.4.0
bootstrap: 3.3.4
jquery: 2.1.4
今天您将获得以下内容:

angular:   1.3.1
bootstrap: 3.2.0
jquery: 2.1.0
angular:   1.4.0
bootstrap: 3.3.4
jquery: 2.1.4
从开发人员集成lib的角度来看,这些特性在开发之初就很好了。您不必费心费力地管理lib和版本的依赖关系。但是一旦它被测试,这个版本应该被固定到定义的版本

我已经接触过多个项目,这些项目在非常短的3个月时间内就被破坏了,因为libs被更新为不同的版本,这些版本要么彼此不兼容,要么某些功能被破坏。因此,要么构建不再工作,要么更糟糕,问题出现在客户端


在长期项目中,消除此类版本问题的最佳做法是什么?

如果您唯一的选择是bower,目前还没有。
lockfile
A la或
shrinkwrap
机制A la处于禁用状态,但由于目前没有足够的贡献者/维护者来测试该功能并长期维护它,因此它似乎已停止

更新:

既然我们现在有了,您可以选择使用它,它使用锁文件机制作为默认行为。唯一需要注意的是,它使用了
npm
注册表,这意味着有些软件包尚未在那里注册,或者已经被命名为谷歌的名称空间,这可能需要注意。

我的get-t-go方法使用的是精确版本, 不要让依赖工具决定哪个版本最适合你,因为他们(和其他人)通常是错误的

我的意思是,我在鲍尔已经看过很多了。有一天你得到了A.B.C版本,第二天你可能会得到A.D.F和A.D.F与你拥有的其他依赖冲突。这会带来各种各样的问题

最好是自己处理所有升级,并自己测试。
我还没有看到过这样一个项目:UI和javascript测试以可靠的方式实现自动化。

没有其他人有同样的问题?composer的lockfile选项看起来很棒。鲍尔锁的问题现在已经快一岁了。。。所以没有太多的关注。