我正在学习使用webpack-encore,并且注意到它仅作为dev
依赖项安装。这是否意味着我应该在开发时编译我的js
和css
文件,并将它们推送到存储库,然后再推送到生产环境?
在我看来,这意味着文档所隐含的含义,但这是否意味着合并冲突地狱?编译的文件将无法合并。
难道这不违背版本控制原则吗?据我所知,您不会以编译语言(即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/