我正在学习使用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

干杯!

关于javascript - webpack-encore项目的版本控制策略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44801753/

10-10 05:50