bower_components 应该被忽略吗?

问题描述 投票:0回答:7

只保留

bower.json
文件并忽略整个
bower_components
目录是个好习惯吗?

git gitignore bower
7个回答
150
投票

Bower 官方页面指出:

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

请务必查看报价中的链接,它讨论了一些优点和缺点。它提到的主要优点是,只要您的存储库可用,签入它们就可以确保您的依赖项始终可用。无论 Bower 发生什么情况,都需要 GitHub 或其他任何东西。


52
投票

新生成的 Yeoman AngularJS 项目中的 .gitignore 文件列出了要忽略的 Bower_Components (和 Node_modules)(如果您不了解 Yeoman,它是现代 Web 应用程序的一个非常有信誉的 Web 脚手架工具,所以这已经足够好了对我来说!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

10
投票

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

这是一篇好文章我喜欢讨论这个问题。


6
投票

如果您将 Grunt 和 Node 与 Bower 一起使用,则将 bower_components 放入 .gitignore 中是有意义的,因为当您运行 gruntservegrunt build 时,它会为您处理依赖项,我确信这是为什么在 Yeoman 中他们将其添加到 .gitignore


5
投票

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

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

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


0
投票

如果您使用

Shawn Lonas
编写的
bower-locker
创建锁定文件,最好忽略
/bower_components
目录并仅签入 bower.jsonbower-locker.bower.json 文件。

在 Bower-Locker 创建之前,存在由 Bower 问题导致的缺点:不具有收缩包装功能,但可以通过上述库来缓解。

运行以下命令来实现它:

npm install bower-locker -g

yarn global add bower-locker

然后根据现有的

bower.json

 文件生成锁定文件,运行: 

bower-locker lock

原来的

bower.json

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

    


0
投票
别碰我的狗屎

不要再用你的假电子邮件来打扰我的电子邮件 你知道我是谁,因为我们跟踪我但时间不长

© www.soinside.com 2019 - 2024. All rights reserved.