我们是否应该将 package.json、bower.json、gulpfile.js 推送到生产服务器

Should we push the package.json, bower.json, gulpfile.js to production server

我正在为 angularjs 应用程序使用 gulpbowerstylus

我没有使用任何 Continuous Integration 技术,git pullbitbucket 上的 master 分支上 git push 时手动从回购中获取代码,考虑到这种情况:

  1. 包含 bower.jsonpackage.jsongulpfile.js 在生产服务器上并安装依赖项 通过服务器上的 npm installbower install 手动?
  2. 在服务器上包含 gulpfile.js 是否安全?

此外,如果使用任何 Continuous Integration 技术,最佳做法是什么?

我的.gitignore文件如下:

node_modules
dist
.tmp
.sass-cache
bower_components
private.xml
nbproject
gruntfile.js
gulpfile.js
package.json

您可以使用 gulpgrunt 任务运行器来提取所有外部依赖项,例如 Angular, JQuery 并将它们捆绑在一起。然后在生产服务器上使用捆绑文件。它还将减少您的浏览器为获取这些资源而需要发出的请求数量。有关更多信息,请阅读这篇文章:

https://scotch.io/tutorials/automate-your-tasks-easily-with-gulp-js#javascript-concat-and-minify

添加 package.json 和 bower.json 文件以跟踪生产服务器上正在使用的依赖项。但是,您应该跳过上传 gulp 或 grunt 文件,因为它们仅供本地使用。它们不需要上传到生产服务器。

编辑: 如果你也使用 grunt/gulp 来重启你的节点服务器,比如使用 grunt/gulp 中的 nodemon,你可以上传 grunt/gulp 文件。最后,如果您正确地构建了您的节点服务器,那么将 grunt/gulp 文件放在服务器上是没有害处的,因为这些文件在服务器启动之前与您的系统交互。