为什么要检查凉亭组件?

时间:2013-06-19 08:26:05

标签: bower

Bower docs说

  

N.B。如果您没有创作供其他人使用的软件包(例如,您正在构建Web应用程序),则应始终将已安装的软件包检查到源代码管理中。

有没有人对原因有好的答案?

如果我正在创建一个Web应用程序,我不希望我的repo在库X的版本中更新。

我只是想更新bower.json依赖项。我认为大多数项目都会有一个构建步骤或类似项目,例如grunt。构建步骤将确保在构建之前调用bower安装/更新,以便这些文件存在以进行连接/缩小等。或者甚至是普通副本到某个dist文件夹。

我错过了什么吗?

2 个答案:

答案 0 :(得分:28)

这是为了锁定您的依赖项,以防止错误的依赖项破坏您的应用程序或远程阻止部署。即使你有一个构建步骤,也可能会发生这种情况,因为你可能没有对每个构建进行彻底的测试,而自动化测试并不能捕获所有内容,尤其是视觉回归。此外,多个开发人员可能具有不同版本的依赖项。通过提交依赖项,您可以确保每个人都使用相同的版本。我还发现查看差异是确保依赖树中没有引入任何恶意的好方法。

在节点世界npm shrinkwrap部分解决了这个问题,但尚未进行校验和匹配。 Bower目前有一个开放ticket来实现相同的目标。

您可以在此博文中了解更多相关信息:Checking in front-end dependencies

答案 1 :(得分:0)

这个答案是非技术性的,但却是不检查凉亭组件的实际原因。

我宁愿建议将bower软件包锁定在bower.json中,而不是检查这些软件包。因为相信我,你不能在计算机上下载和解包数千个文件。执行速度慢的计算机存在非常大且深的文件路径问题。在这个互联网世界中,我相信下载软件包总是很容易,而不是随身携带。

这只是一个偏好问题。这一切都来自经验。我已经在Github上检查了一个带有bower组件的项目,上传和下载时情况更糟。我是通过一台相对较新的Mac来做到的。