27

鲍尔文档说

NB 如果您不是在编写一个打算供其他人使用的包(例如,您正在构建一个 Web 应用程序),您应该始终将已安装的包检查到源代码管理中。

有人对为什么有一个很好的答案吗?

如果我正在制作一个 Web 应用程序,我不希望我的存储库被库 X 版本的更新弄得乱七八糟。

我只想更新 bower.json 依赖项。我认为大多数项目都会有一个构建步骤或类似的步骤,例如 grunt。构建步骤将确保在构建之前调用 bower install/update,以便这些文件存在用于 concat/minification 等。甚至是某个 dist 文件夹的纯副本。

我错过了什么吗?

4

2 回答 2

28

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

在 Node 世界中npm shrinkwrap部分解决了这个问题,但还没有进行校验和匹配。Bower 目前有一个开放的来实施相同的。

您可以在这篇博文中阅读更多相关信息:检查前端依赖项

于 2013-06-20T08:35:55.110 回答
0

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

我宁愿建议将 bower 包锁定在 bower.json 中,而不是签入这些包。因为相信我,你不可能在一台电脑上下载和解压成千上万的文件。性能缓慢的计算机存在文件路径非常大和深的问题。在这个互联网世界中,我相信下载软件包总是很容易,而不是随身携带。

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

于 2016-09-23T14:06:07.657 回答