首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么webpack只在开发中需要安可?

为什么webpack只在开发中需要安可?
EN

Stack Overflow用户
提问于 2020-09-02 21:46:12
回答 1查看 1.9K关注 0票数 2

我目前正在为symfony 5项目配置一些对接映像,并试图处理生产构建。在这样做时,我注意到webpack仅在dev模式下安装,如以下正式文档中的建议:https://symfony.com/doc/current/frontend/encore/installation.html

代码语言:javascript
复制
yarn add @symfony/webpack-encore --dev

然而,这对我来说没有意义,因为即使在生产中,我们也应该建立资产:

代码语言:javascript
复制
yarn encore production

有人有这方面的线索吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-03 02:12:30

如何部署我的Encore资产?上的Symfony文档提供了部署资产时要记住的两件重要事情:

1)编译用于生产的资产:

代码语言:javascript
复制
$ ./node_modules/.bin/encore production

现在重要的是:

但是,您应该在哪个服务器上运行这个命令呢?这取决于您的部署方式。例如,您可以在本地(或在构建服务器上)执行此操作,并使用rsync或其他方法将生成的文件传输到生产服务器。或者,您可以先将文件放在生产服务器上(例如,通过git拉),然后在生产上运行此命令(理想情况下,在通信量到达代码之前)。在这种情况下,您需要在生产服务器上安装Node.js。

第二件重要的事情是:

2)只部署已构建的资产

需要将部署到生产服务器的唯一文件是最终构建的资产(例如,公共/构建目录)。除非计划在生产机器上运行Node.js,否则不需要安装webpack.config.js、部署webpack.config.js、node_modules目录甚至源资产文件。一旦您的资产被构建,这些就是唯一需要在生产服务器上生存的东西。

简单地说,在生产环境中,您只需要生成资产(通常是/public/build目录内容)。在一个简单的场景中,当您只需要加载编译好的Javascript和CSS文件时,Webpack就不会在运行时使用。

如何部署Symfony应用程序和资产的可能解决方案

当手动部署Symfony应用程序(没有CI/CD)时,可以在本地机器或Docker容器中执行以下步骤(假设Symfony 4/5):

  1. git-archive从GIT存储库导出源代码,例如:git archive --prefix=myApp/ HEAD | tar -xC /tmp/
  2. 转到导出的源代码:cd /tmp/myApp
  3. 安装Symfony &其他PHP供应商(也请参阅塞福尼博士):composer install --no-dev --optimize-autoloader
  4. 安装纱线/NPM供应商(他们将需要与Webpack一起生成资产):yarn install
  5. 创建生产资产yarn build (或yarn encore production)
  6. (如果需要安装Symfony资产:bin/console assets:install)

现在,代码已经准备好将其rsync到生产服务器。您可以排除或删除/node_modules/var甚至/assets目录和webpack.config.js (可能也不需要package.json & yarn.lock --没有测试过!)并运行例如:rsync --archive --compress --delete . <myProductionServer>:<app/target/path/>

关于Symfony部署的资源:

  1. 如何部署Symfony应用程序 (Symfony docs)
  2. 如何部署我的Encore资产? (Symfony前端常见问题解答)
  3. 是否需要在生产服务器上安装Node.js? (Symfony前端常见问题解答)
  4. 生产建设与部署 (SymfonyCast)

Untars正在动态地将存档的GIT存储库放到/tmp/myApp目录中,而不是进入TAR存档中。不要错过/中的--prefix标志!文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63713945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档