Bower版本最佳实践?

时间:2015-05-31 07:03:21

标签: version-control version bower dependency-management

我想知道如何确保我的bower版本配置将来可行? 例如。我已经触及了多个项目,要么告诉使用

">=1.0.0"
"~1.0.0"

Afaik

">=" 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

从开发人员集成lib的角度来看,这个功能在开发之初就很好。你不必乱用libs和版本的痛苦依赖管理。但是一旦测试,版本应该被修复为定义的版本。

我已经触及了很多项目,这些项目在很短的3个月后就被破坏了,因为libs已经更新到不同的版本,这些版本要么彼此不兼容,要么某些功能被破坏。因此,无论是构建还是不再工作,甚至更糟糕,客户端都会出现问题。

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

2 个答案:

答案 0 :(得分:1)

目前没有,如果你唯一的选择是凉亭。 lockfile a la composershrinkwrap机制 a la npm位于works但是它似乎停滞不前,因为目前没有足够的贡献者/维护者来测试该功能并从长远来看维护它。

<强>更新
由于我们现在有yarn,您可以选择使用它,它使用锁定文件机制作为默认行为。唯一需要注意的是它使用了npm注册表,这意味着某些软件包还没有在那里注册,或者像Google的Polymer一样被命名为line你可能需要提防。

答案 1 :(得分:0)

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

我的意思是,我在凉亭上看到了足够多的东西。有一天你得到A.B.C版本,第二天你可能会得到A.D.F和A.D.F与你有的其他依赖冲突。这可以引入所有类型的问题。

最好是自己处理所有升级并自行测试。 我还没有看到一个项目,其中UI和javascript测试是以可靠的方式自动完成的。

相关问题