如何重建Symfony Encore资产?

时间:2019-12-11 08:53:11

标签: php symfony symfony4 webpack-encore

我已经安装了Symfony演示应用程序(https://github.com/symfony/demo),并尝试使用资产/加重版。我对再演的理解是:

  1. 您在其中包含js / css
{{ encore_entry_link_tags('css/app') }}
{{ encore_entry_script_tags('js/app') }}
  1. 您在资产/ js和资产/ css中编辑js / css
  2. 您“重建”资产,然后将其存储在public / build / js和public / build / css中

我更改了一些css和js代码,并在重建部分中苦苦挣扎。我尝试过

php bin/console assets:install

但是重新加载演示页面后,没有任何变化。

如何重建资产?

2 个答案:

答案 0 :(得分:1)

假设您有all the necessary parts installed

开发时只需编译一次资产

yarn encore dev

要使观察者能够在检测到文件更改时自动重新编译资产(使用 Control + C 杀死它):

yarn encore dev --watch

要编译您的资产以进行生产/部署:

yarn encore production

答案 1 :(得分:0)

除了yivi的答案:

首先,您的第三个假设并不完全正确。所有构建文件(如果您尚未触摸任何配置)都将存储在/public/build中。 css和js没有单独的目录。

第二,如果您查看package.json,则会发现带有scripts的部分:

  "scripts": {
    "dev-server": "encore dev-server",
    "dev": "encore dev",
    "watch": "encore dev --watch",
    "build": "encore production --progress"
  }

那里的脚本定义了可执行文件的别名。因此,您可以只运行yarn encore dev --watch,而不用从终端运行yarn watch

第三,一个非常有用的功能正在运行yarn dev-server。这将动态创建一个开发服务器,该服务器监视资产文件的任何更新,并在检测到更改时自动重新加载浏览器。

ps。只是要确保:您将需要软件包管理器Yarn(或者您可以使用类似npm的软件包)