Git 如何在生产服务器上部署gulp

Git 如何在生产服务器上部署gulp,git,gulp,Git,Gulp,当建立一个网站时(为了清晰起见,一个只有HTML/JS的网站),我使用gulp来编译和压缩一些文件,然后将这些文件放在build/文件夹中 文件夹结构如下所示: ├── assets │   ├── images │   ├── javascripts │   │   └── app.js │   └── stylesheets │   └── style.scss ├── bower.json ├── build │   ├── bower_components │   ├── ima

当建立一个网站时(为了清晰起见,一个只有HTML/JS的网站),我使用gulp来编译和压缩一些文件,然后将这些文件放在
build/
文件夹中

文件夹结构如下所示:

├── assets
│   ├── images
│   ├── javascripts
│   │   └── app.js
│   └── stylesheets
│       └── style.scss
├── bower.json
├── build
│   ├── bower_components
│   ├── images
│   ├── index.html
│   ├── scripts.min.js
│   └── styles.min.css
├── gulpfile.js
├── index.html
├── node_modules
│   ├── gulp-module-1
│   └── gulp-module-2
├── package.json
└── README
如果我在git repo中包含所有这些文件,我的所有更改都将提交两次。也就是说,
assets/stylesheets/style.scs
中的更改也会导致
build/styles.min.css
中的更改。但是,如果我决定将
build/
文件夹从存储库中排除,您将需要生产服务器上的某些开发工具(即gulp、npm等)。当生产服务器上的权限有限时,这有时会很困难。显然,排除
assets/
文件夹不是一个选项,因为您将丢失编译文件的源代码


因此,我的问题是:在生产服务器上部署此功能的最佳实践是什么?您是否将
build/
文件夹包括在repo中,您是否在生产服务器上编译
build/
文件夹,或者是否有第三种解决方案?

虽然不是每个人都同意这个问题的最佳解决方案,但我认为您错过了第三种解决方案,而我通常更喜欢这种解决方案。您可以在开发计算机上生成所有文件,然后将生成的文件部署到生产服务器上。这通常只是一个复制操作


这样,服务器上就不需要任何开发工具,版本控制系统中也不需要生成输出。

感谢您的回复。我也这么想,这似乎是一个简单的解决办法。然而,我想知道是否还有其他基于git的解决方案。然后,我将能够使用诸如Bitbucket的web钩子之类的功能自动拉取新版本。我知道不使用git还有其他方法可以做到这一点,但我只是想知道。@Diederik我认为,在任何情况下,如果您想使用git部署,您都会遇到定义上的任何一个原始问题。一年半后再次讨论这个问题,我会将此标记为正确答案。事实证明,这是最简单的解决方案。在我的项目中,我通常有一个<代码>部署>代码>命令,它设置了<代码> RSyc> < /C> >“代码> DIST/<代码>到生产服务器。对于那些想要深入到<>代码> RSYNC 的人,请考虑<代码> Actudie(或CHIF或PANET),将基于YAML的配置部署到主机目录中。(除了
rsync
”文件夹外,还允许通过
apt
同步整个机器状态