bower_components应该被gitignored吗?

rhfm7lfc  于 2023-11-15  发布在  Git
关注(0)|答案(6)|浏览(119)

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

uplii1fm

uplii1fm1#

官方Bower页面指出:

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

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

nhn9ugyo

nhn9ugyo2#

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

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

字符串

bejyjqdl

bejyjqdl3#

这两种方法都有时间和地点。对于Yeoman来说,依赖bower.json是合适的,因为它是工具链中的一个工具,需要与bower生态系统一起生存和呼吸。对于可部署的Web应用程序,提交依赖项并保持更多控制通常是良好的做法。
这里有一个我喜欢的good article讨论了这一点。

q3qa4bjr

q3qa4bjr4#

如果你正在使用Grunt和Node与Bower,那么将bower_components放在.gitignore中是有意义的,因为当你运行 grunt servegrunt build 时,它会为你处理依赖关系,我相信这就是为什么在Yeoman中他们会将它添加到.gitignore中。

gorkyyrv

gorkyyrv5#

Yeoman生成器用bower_components预填充了**.gitignore**文件,但它也预填充了我认为最终应用程序(如www)所需的其他目录,所以我做了一些研究。
我发现www/index.html是app/index.html的缩小版。(包括bower_components)包含输出目录(www)所需的源文件(即git)但不是生成的文件像bower和npm这样的包管理器应该在构建/生成阶段使用,它们的工件不应该被签入源代码控制。
最终,您签入git的源代码是出于开发或部署目的构建项目其余部分所需的最低配置。

nhjlsmyf

nhjlsmyf6#

如果您使用Shawn Lonas编写的bower-locker创建锁文件,最好忽略/bower_components目录,只检入bower.jsonbower-locker.bower.json文件。
在bower-locker创建之前,存在由bower 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

相关问题