只保留
bower.json
文件并忽略整个 bower_components
目录是个好习惯吗?
Bower 官方页面指出:
注意。如果您编写的包不是供其他人使用的(例如,您正在构建 Web 应用程序),则应始终 将已安装的包检查到源代码管理中。
请务必查看报价中的链接,它讨论了一些优点和缺点。它提到的主要优点是,只要您的存储库可用,签入它们就可以确保您的依赖项始终可用。无论 Bower 发生什么情况,都需要 GitHub 或其他任何东西。
新生成的 Yeoman AngularJS 项目中的 .gitignore 文件列出了要忽略的 Bower_Components (和 Node_modules)(如果您不了解 Yeoman,它是现代 Web 应用程序的一个非常有信誉的 Web 脚手架工具,所以这已经足够好了对我来说!):
.gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
这两种方法都有各自的时间和地点。对于 Yeoman 来说,依赖 Bower.json 是合适的,因为它是工具链中的一个工具,需要与 Bower 生态系统一起生存和呼吸。对于可部署的 Web 应用程序,提交依赖项并保持更多控制通常是很好的做法。
这是一篇好文章我喜欢讨论这个问题。
如果您将 Grunt 和 Node 与 Bower 一起使用,则将 bower_components 放入 .gitignore 中是有意义的,因为当您运行 gruntserve 或 grunt build 时,它会为您处理依赖项,我确信这是为什么在 Yeoman 中他们将其添加到 .gitignore
Yeoman 生成器用 Bower_components 预填充了 .gitignore 文件,但它也预填充了我认为最终应用程序需要的其他目录(例如 www),所以我做了一些研究。
我发现 www/index.html 是 app/index.html 的缩小版本。 app 目录及其内容(包括 Bower_components)包含输出目录 (www) 所需的源文件。您将源目录提交到源代码管理(即 git),但不提交生成的文件(即 www)。像 Bower 和 npm 这样的包管理器应该在构建/生成阶段使用,并且它们的工件不应该被检查到源代码控制中。
最终,您签入 git 的源代码是构建项目其余部分以进行开发或部署所需的最低配置。
如果您使用
Shawn Lonas编写的
bower-locker创建锁定文件,最好忽略
/bower_components
目录并仅签入 bower.json
和 bower-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
不要再用你的假电子邮件来打扰我的电子邮件 你知道我是谁,因为我们跟踪我但时间不长