bower_components应该被gitignored?

时间:2014-03-11 13:52:18

标签: git gitignore bower

优良作法是仅将bower.json文件和gitignore保留在整个bower_components目录中吗?

6 个答案:

答案 0 :(得分:147)

official Bower page声明:

  

NB 如果您没有创作供其他人使用的软件包(例如,您正在构建Web应用程序),则应始终check installed packages into source control

请务必查看引文中的链接,并讨论一些优缺点。它提到的主要原因是只要您的存储库可用,检查它们就可以确保您的依赖项始终可用。无论Bower发生什么,GitHub或其他任何需要的东西。

答案 1 :(得分:51)

新生成的Yeoman AngularJS项目中的 .gitignore 文件列出了bower_components(和node_modules)被忽略(如果你不知道Yeoman它是一个非常有信誉的web脚手架现代webapps的工具,这对我来说足够好了!):

<强>的.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

答案 2 :(得分:9)

有一段时间&amp;两种方法的地方。对于Yeoman来说,依靠bower.json是合适的,因为它是工具链中的工具,需要通过凉亭生态系统保持生活和呼吸。对于可部署的Web应用程序,提交依赖项并保持更多控制通常是一种很好的做法。

这是我喜欢的good article讨论这个问题。

答案 3 :(得分:6)

如果您正在使用Grunt和Node with Bower,那么将 bower_components 放入.gitignore是有意义的,因为当您运行 grunt serve grunt时构建它会照顾你的依赖关系,我确定这就是为什么在Yeoman中他们将它添加到.gitignore

答案 4 :(得分:5)

Yeoman生成器使用bower_components预填充 .gitignore 文件,但它也预先填充了我认为最终应用程序需要的其他目录(如www)所以我做了一些研究。

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

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

答案 5 :(得分:0)

如果您使用bower-locker撰写的Shawn Lonas创建锁定文件,则忽略/bower_components目录并仅检入bower.jsonbower-locker.bower.json文件。 / p>

在bower-locker创建之前,由于凉亭not having shrinkwrap capability问题导致了缺点,但上述库可以减轻它。

运行以下命令来实现它:

npm install bower-locker -g

yarn global add bower-locker

然后通过运行生成基于现有bower.json文件的锁定文件:

bower-locker lock

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