繁体   English   中英

webpack-encore项目的版本控制策略

[英]Version control strategy for webpack-encore project

我正在学习使用webpack-encore,并且注意到它仅作为dev依赖项安装。 这是否意味着我应该在开发时编译我的jscss文件,并将它们推送到存储库,然后再推送到生产环境?

在我看来,这意味着文档所隐含的含义,但这是否意味着合并冲突地狱? 编译的文件将无法合并。

也不会违背版本控制原则吗? 据我所知,您不会以编译语言(即C / C ++)发布二进制文件,而是会推送代码并期望服务器对其进行编译。 我知道这与javascript中的“编译”类型不同,但是在这种情况下生产服务器的预期行为是什么? 要接收准备服务的文件,还是在发布时进行编译?

提前致谢

这是否意味着我应该在开发时编译我的js和css文件,并将它们推送到存储库,然后再推送到生产环境?

不完全是-这取决于您的部署方式。

部署时,需要运行./node_modules/.bin/encore production以构建资产。 完成此操作后, 仅需要将已构建的资产(例如web/build )转移到生产中。

您可以在本地(或在某些“构建”服务器上)运行此命令,并将所有文件传输到生产环境。 或者,您可以在生产环境中使用git pull ,然后在生产环境中运行此命令(不利之处是您需要在生产环境中安装Node.js)。

您不需要/不需要将构建的文件提交到存储库。 但是...如果它简化了您的部署(即您要进行git pull并完成),则没有任何实际问题。

我只是在FAQ( http://symfony.com/doc/current/frontend/encore/faq.html )中添加了PR来回答这些问题-这是部署之前的PR: https : //github.com/symfony/ symfony-docs / pull / 8109

干杯!

解决方案1:

  1. 本地运行yarn run encore production
  2. 查看哪些文件已创建/修改
  3. 将它们添加到VCS
  4. 承诺
  5. 推送/部署

解决方案2:

  1. 推送/部署
  2. 在部署期间远程运行yarn run encore production

在我看来,第二种解决方案更好,因为在部署之前不需要额外的人工检查,一切都是自动化的。 但这有一个很大的缺点:资产的建立过程可能很慢,而当我部署时,在资产建立之前,我的生产会在5到20秒内停机。

这是HTTP 500错误:

呈现模板期间引发了异常(“资产清单文件“ [...] / web / build / manifest.json”不存在。”)。

看起来manifest.json文件在该过程的开始被删除,并在以后从头开始创建。

有什么需要改进的地方吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM