为什么不制作bower.json中的版本



我知道大多数项目都在Bower.json中定义了最低版本。

我不明白的事情是,如果某些东西更新并且有分类或错误,这会冒险,它会影响您的应用程序,而您不知道它会影响您的应用程序吗?设计背后的设计是什么?

谢谢!

我们刚刚在我正在进行的项目上遇到了确切的问题,解决方案是将我们的bower.json文件更改为目标固定版本。

具体来说,我们针对的是AngularJs ^1.4.8。在Angularjs v1.6中,

$位置现在使用'!'作为Hash-bang URL的默认哈希式预订, 而不是空字符串

对于更好或更糟糕的是(大多数情况下),我们在另一个应用程序中有一些硬编码的URL,指向该项目,该项目一旦Bower自动安装了AngularJS 1.6,这是我们自动化构建过程的一部分。

解决方案是简单地锁定我们的版本,而不是依靠最新的错误修复(即以〜的前缀版本编号)或次要构建(即用 ^将版本编号 ^)。

i think bower和npm默认为动态版本的软件包管理人员的原因是它们依靠语义版本控制,从理论上讲,您只能在主要版本编号更改时遇到破坏变化。SEMVER使用主要的,次要的错误修正模式。当BugFix值增加时,它表明已经解决了一个或多个向后兼容的错误。当次要版本增加时,它表明已添加了新的向后兼容功能。当主要版本增加时,它表明已引入了新的变化。

问题首先,它依赖于包装开发人员在更改包装时尊重SEMVER规则,其次,即使尊重SEMVER,它仍然会导致问题(如示例I中,上面提供的)。

最新更新