只保留 bower.json
文件并将整个 bower_components
目录添加到 .gitignore 文件,这是否是一个好的做法?
官方Bower页面中提到:
注意:如果您不是要编写供他人使用的包(例如,您正在构建Web应用程序),则应始终将安装的软件包检入源代码控制。
请确保查看引文中的链接,它讨论了一些利弊。它提到的主要优点是,将其检入可以确保您的依赖关系始终可用,只要您的存储库可用。无论发生什么事情,都不会影响Bower、GitHub或其他需要的内容。
在新生成的Yeoman AngularJS项目中,.gitignore文件列出了要忽略的bower_components目录(以及node_modules目录)。(如果您不知道Yeoman,它是一个非常有声誉的现代Web应用程序搭建工具,这对我来说已经足够好了!):
.gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
两种方法都有其适用的时间和场合。对于Yeoman来说,依赖于bower.json是合适的,因为它是工具链中的一个工具,需要与bower生态系统保持同步。对于可部署的Web应用程序,通常最好提交依赖项并保持更多的控制。
这里有一篇我喜欢的好文章讨论了这个问题。
如果你在使用 Grunt 和 Node 以及 Bower,则有必要将 bower_components 放在 .gitignore 文件中。因为当你运行 grunt serve 或 grunt build 命令时,它会自动处理依赖项。我相信这也是 Yeoman 将其添加到 .gitignore 文件中的原因。
忽略 /bower_components
目录,只检入 bower.json
和 bower-locker.bower.json
文件是一个好习惯,如果你使用 bower-locker 这个库,这个锁文件将由 Shawn Lonas 编写。
在 bower-locker 创建之前,由于 bower 没有缩小包的能力,存在一些缺点,但可以通过上述库来减轻这种情况。
运行以下命令以实现此目的:
npm install bower-locker -g
或者
yarn global add bower-locker
然后通过运行以下命令,基于现有的bower.json
文件生成锁定文件:
bower-locker lock
原始的bower.json
文件将被重命名为bower-locker.bower.json
.gitignore
文件中”。 - Pierre de LESPINAY