Dre*_*rew 12 git deployment build process
所以我和一些同事一直在讨论这个问题,我希望其他一些人能够对此进行权衡.我很想知道其他开发人员在做什么.
我喜欢做的是忽略repo中的整个build/assets文件夹.此文件夹包含我编译的CSS,Javascript和压缩图像.我认为只应检查源文件.我发现每次我对样式表或JS文件进行更改时都会感到烦恼,我必须检查源文件和新编译的版本.当您有多个人在处理项目时,这也会引入合并冲突和其他问题.我喜欢让repo保持良好和轻松,然后让开发人员在本地构建项目以进行设置.或者在部署时,让服务器构建项目.
这有点问题,因为我的同事使用Git作为部署过程.因此,当您想要部署时,将代码检入git,将其推送到远程仓库,然后通过SSH连接到服务器并执行git fetch && git pull.这意味着所有网站文件都必须存在于回购中.所以我现在必须检查我的资产文件夹.
你们是怎么处理这个的?我正在使用bedrock-ansibleWordpress站点,并且可以选择在部署之前运行一些命令,因此我将其配置为运行npm install && gulp build并构建项目,但问题是它太慢了.bedrock-ansible的工作方式是为每个部署创建一个新的发布目录,它只是将最新的一个current目录链接到目录.因此,每次我部署时,它npm install实际上运行,我只需要在一个共享目录中的那些依赖项.可能有办法做到这一点,npm install --prefix install/dir但我还没有测试过.我认为这可能会引入更多问题.
现在,我必须将所有已编译的资产签入git,以使其正常工作.但是根据我的gulp watch任务,我没有发生任何缩小,但是当我想部署时,我想首先运行gulp build,这将缩小和丑化所有内容 - 所以从技术上来说,当我想部署站点时,我总是必须提交.一团糟.您认为处理此问题的好方法是什么?
您可以创建一个任务,在本地运行时执行以下操作,而不是直接 sshing 到服务器: