只保留bower.json文件而忽略整个bower_components目录是否是一种好的做法?
bower.json
bower_components
uplii1fm1#
官方Bower页面指出:
**N.B.**如果您创作的软件包不是供其他人使用的(例如,您正在构建Web应用程序),则应始终使用check installed packages into source control。
请务必查看引用中的链接,它讨论了一些利弊。它提到的主要优点是,只要您的仓库可用,检查它们就可以确保您的依赖项始终可用。无论Bower,GitHub或其他任何需要的东西发生了什么。
nhn9ugyo2#
新生成的Yeoman AngularJS项目中的**.gitignore**文件列出了bower_components(和node_modules),可以忽略(如果你不知道Yeoman,它是现代web应用程序的一个非常有信誉的web脚手架工具,所以对我来说已经足够好了!):
.gitignore
node_modules dist .tmp .sass-cache bower_components
字符串
bejyjqdl3#
这两种方法都有时间和地点。对于Yeoman来说,依赖bower.json是合适的,因为它是工具链中的一个工具,需要与bower生态系统一起生存和呼吸。对于可部署的Web应用程序,提交依赖项并保持更多控制通常是良好的做法。这里有一个我喜欢的good article讨论了这一点。
q3qa4bjr4#
如果你正在使用Grunt和Node与Bower,那么将bower_components放在.gitignore中是有意义的,因为当你运行 grunt serve 或 grunt build 时,它会为你处理依赖关系,我相信这就是为什么在Yeoman中他们会将它添加到.gitignore中。
gorkyyrv5#
Yeoman生成器用bower_components预填充了**.gitignore**文件,但它也预填充了我认为最终应用程序(如www)所需的其他目录,所以我做了一些研究。我发现www/index.html是app/index.html的缩小版。(包括bower_components)包含输出目录(www)所需的源文件(即git)但不是生成的文件像bower和npm这样的包管理器应该在构建/生成阶段使用,它们的工件不应该被签入源代码控制。最终,您签入git的源代码是出于开发或部署目的构建项目其余部分所需的最低配置。
nhjlsmyf6#
如果您使用Shawn Lonas编写的bower-locker创建锁文件,最好忽略/bower_components目录,只检入bower.json和bower-locker.bower.json文件。在bower-locker创建之前,存在由bower not having shrinkwrap capability问题引起的缺点,但可以通过上述库来缓解。运行以下命令来实现它:
/bower_components
bower-locker.bower.json
npm install bower-locker -g
字符串或
yarn global add bower-locker
型然后根据现有的bower.json文件通过运行以下命令生成锁文件:
bower-locker lock
型原始bower.json文件将重新命名为bower-locker.bower.json
6条答案
按热度按时间uplii1fm1#
官方Bower页面指出:
**N.B.**如果您创作的软件包不是供其他人使用的(例如,您正在构建Web应用程序),则应始终使用check installed packages into source control。
请务必查看引用中的链接,它讨论了一些利弊。它提到的主要优点是,只要您的仓库可用,检查它们就可以确保您的依赖项始终可用。无论Bower,GitHub或其他任何需要的东西发生了什么。
nhn9ugyo2#
新生成的Yeoman AngularJS项目中的**.gitignore**文件列出了bower_components(和node_modules),可以忽略(如果你不知道Yeoman,它是现代web应用程序的一个非常有信誉的web脚手架工具,所以对我来说已经足够好了!):
.gitignore
字符串
bejyjqdl3#
这两种方法都有时间和地点。对于Yeoman来说,依赖bower.json是合适的,因为它是工具链中的一个工具,需要与bower生态系统一起生存和呼吸。对于可部署的Web应用程序,提交依赖项并保持更多控制通常是良好的做法。
这里有一个我喜欢的good article讨论了这一点。
q3qa4bjr4#
如果你正在使用Grunt和Node与Bower,那么将bower_components放在.gitignore中是有意义的,因为当你运行 grunt serve 或 grunt build 时,它会为你处理依赖关系,我相信这就是为什么在Yeoman中他们会将它添加到.gitignore中。
gorkyyrv5#
Yeoman生成器用bower_components预填充了**.gitignore**文件,但它也预填充了我认为最终应用程序(如www)所需的其他目录,所以我做了一些研究。
我发现www/index.html是app/index.html的缩小版。(包括bower_components)包含输出目录(www)所需的源文件(即git)但不是生成的文件像bower和npm这样的包管理器应该在构建/生成阶段使用,它们的工件不应该被签入源代码控制。
最终,您签入git的源代码是出于开发或部署目的构建项目其余部分所需的最低配置。
nhjlsmyf6#
如果您使用Shawn Lonas编写的bower-locker创建锁文件,最好忽略
/bower_components
目录,只检入bower.json
和bower-locker.bower.json
文件。在bower-locker创建之前,存在由bower not having shrinkwrap capability问题引起的缺点,但可以通过上述库来缓解。
运行以下命令来实现它:
字符串
或
型
然后根据现有的
bower.json
文件通过运行以下命令生成锁文件:型
原始
bower.json
文件将重新命名为bower-locker.bower.json