应该忽略 bower_Component 吗?

只保留 bower.json文件而忽略整个 bower_components目录是否是一种好的做法?

43506 次浏览

鲍尔官方主页指出:

注意: 如果你不是在编写一个供其他人使用的包(例如,你正在构建一个 web 应用程序) ,你应该始终使用 将已安装的软件包检查到源代码控制中

一定要检查出在报价的链接,它讨论了一些正面和反面。它提到的主要优点是,检入它们可以确保您的依赖项始终可用,只要存储库可用。不管 Bower、 GitHub 或其他什么东西发生了什么,否则我们都会需要它们。

在一个新生成的 文书 AngularJS 项目中的 。吉蒂诺尔文件有 bower _ Component (和 node _ module)列表可以忽略(如果你不知道 Yeoman,它是一个非常有名的现代网络应用的网络脚手架工具,所以这对我来说已经足够好了:

。吉蒂诺尔

node_modules
dist
.tmp
.sass-cache
bower_components

如果您使用 Grunt 和 Node 与 Bower 一起使用,那么将 电子元器件放在您的。Gitignore,因为当你运行 发球体格粗壮时,它会为你处理依赖关系,我相信这就是为什么在约曼中他们把它添加到。吉蒂诺尔

文书生成器预填充了 。吉蒂诺尔文件,但是它也预填充了我认为最终应用程序(比如 www)需要的其他目录,所以我做了一些研究。

我发现 www/index.html 是 app/index.html 的缩小版。App 目录及其内容(包括 bower _ Component)包含输出目录(www)所需的源文件。您将源目录提交到源代码控制(即 git) ,但不提交生成的文件(即 www)。像 bower 和 npm 这样的包管理器应该在构建/生成阶段使用,并且它们的构件不应该检查到源代码控制中。

最终,您签入 git 的源代码是为开发或部署目的构建项目其余部分所需的最低配置。

两种方法都有时间和地点。对于 Yeoman 来说,依赖 bower.json 是合适的,因为它是工具链中的一个工具,需要与 Bower.json 生态系统一起生存和呼吸。对于一个可部署的 web 应用程序来说,提交依赖项并保持更多的控制通常是一个好的实践。

这里有一个我喜欢的 文章不错讨论这个问题。

如果使用 Shawn Lonas编写的 保险柜创建锁定文件,那么最好忽略 /bower_components目录,只签入 bower.jsonbower-locker.bower.json文件。

在冷藏库创建之前,由于冷藏库 没有收缩能力的问题而造成了一些不利因素,但通过上述库可以缓解这些不利因素。

运行以下命令来实现它:

npm install bower-locker -g

或者

yarn global add bower-locker

然后根据现有的 bower.json文件运行以下命令生成锁文件:

bower-locker lock

原始的 bower.json文件将被重命名为 bower-locker.bower.json