部署项目和编译资产的正确方法
Right way to deploy project and compile assets
我将 laravel 项目保存在 github
存储库中,当我在开发中进行一些更改时,我将其推送到存储库,然后以这种方式将其部署到生产服务器上:
1) git pull
...
n) gulp --production
一段时间后,项目的 css/js
开始变大,开始编译资产大约需要 30 秒。所以我想也许我使用了不适合的部署过程,因为在 git pull
命令之后项目仍然使用旧资产并且仅在 30 秒后它才获得新的静态。你能告诉我如何正确地将项目部署到生产服务器而不会延迟吗?
我已经阅读了很多关于此的内容,但找不到好的解决方案。
- 有些人建议将编译后的资产保存在 repo 中:这很好,因为您不需要在生产环境中安装
nodejs
、gulp
,但这样做有很多缺点;
- 也有不同的 CI 系统,如
jenkins
、circleCI
、Travis CI
,但我以前没有用过它们,我不知道它们是否可以帮助解决问题。
这绝对是 CI/Build 服务器或 Saas 产品的工作。我们将 Amazon Web Services 用于我们的产品,因此在他们的 eco-system 中,我们使用 CodeBuild 产品来准备我们的代码以部署到环境中。
源代码进入我们的 CodePipeline,然后将其推送到 CodeBuild,后者安装我们所有的 composer
和 node
依赖项,然后运行 webpack
构建。假设一切顺利,它将压缩构建的文件,并将它们发送回 CodePipeline,为下一步做好准备。
我们过去也使用过 Jenkins,但发现这需要相当多的复杂配置和维护。
我将 laravel 项目保存在 github
存储库中,当我在开发中进行一些更改时,我将其推送到存储库,然后以这种方式将其部署到生产服务器上:
1) git pull
...
n) gulp --production
一段时间后,项目的 css/js
开始变大,开始编译资产大约需要 30 秒。所以我想也许我使用了不适合的部署过程,因为在 git pull
命令之后项目仍然使用旧资产并且仅在 30 秒后它才获得新的静态。你能告诉我如何正确地将项目部署到生产服务器而不会延迟吗?
我已经阅读了很多关于此的内容,但找不到好的解决方案。
- 有些人建议将编译后的资产保存在 repo 中:这很好,因为您不需要在生产环境中安装
nodejs
、gulp
,但这样做有很多缺点; - 也有不同的 CI 系统,如
jenkins
、circleCI
、Travis CI
,但我以前没有用过它们,我不知道它们是否可以帮助解决问题。
这绝对是 CI/Build 服务器或 Saas 产品的工作。我们将 Amazon Web Services 用于我们的产品,因此在他们的 eco-system 中,我们使用 CodeBuild 产品来准备我们的代码以部署到环境中。
源代码进入我们的 CodePipeline,然后将其推送到 CodeBuild,后者安装我们所有的 composer
和 node
依赖项,然后运行 webpack
构建。假设一切顺利,它将压缩构建的文件,并将它们发送回 CodePipeline,为下一步做好准备。
我们过去也使用过 Jenkins,但发现这需要相当多的复杂配置和维护。