优良作法是仅将bower.json
文件和gitignore保留在整个bower_components
目录中吗?
答案 0 :(得分:147)
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.json
和bower-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