Symfony Webpack:无法从Webpack中找到入口点文件

geo*_*eoB 7 php symfony webpack

安装Webpack Encore后,一个相对新鲜的Symfony 4.1.7项目会抛出错误

在呈现模板期间抛出异常("无法从Webpack中找到入口点文件:文件".../public/build/entrypoints.json"不存在.")

{{ encore_entry_link_tags('app') }} 启动时模板包含的位置 http://127.0.0.1:8000/

我错过了什么?

$ yarn encore dev
Running webpack ...

 DONE  Compiled successfully in 1974ms

 I  3 files written to public\build
Done in 3.33s.
Run Code Online (Sandbox Code Playgroud)

.../public/build 包含

app.css
app.js
manifest.json
Run Code Online (Sandbox Code Playgroud)

本地Symfony版本:

symfony/webpack-encore-bundle       v1.0.0
symfony/webpack-encore-pack         v1.0.3
Run Code Online (Sandbox Code Playgroud)

webpack.config.js:

var Encore = require('@symfony/webpack-encore');

Encore
    // the project directory where compiled assets will be stored
    .setOutputPath('public/build/')
    // the public path used by the web server to access the previous directory
    .setPublicPath('/build')
    .cleanupOutputBeforeBuild()
    .enableSourceMaps(!Encore.isProduction())
    // uncomment to create hashed filenames (e.g. app.abc123.css)
    // .enableVersioning(Encore.isProduction())

    // uncomment to define the assets of the project
    .addEntry('app', './assets/js/app.js')
//     .addEntry('js/app', './assets/js/app.js')
//     .addStyleEntry('css/app')
//     .addStyleEntry('css/app', './assets/css/app.scss')

    // uncomment if you use Sass/SCSS files
    // .enableSassLoader()

    // uncomment for legacy applications that require $/jQuery as a global variable
     .autoProvidejQuery()
;

module.exports = Encore.getWebpackConfig();
Run Code Online (Sandbox Code Playgroud)

Dav*_*now 7

将package.json中的版本约束更新为@ symfony/webpack-encore为^ 0.21.0

...
"devDependencies": {
    "@symfony/webpack-encore": "^0.21.0",
...
Run Code Online (Sandbox Code Playgroud)

将.enableSingleRuntimeChunk()添加到webpack.config.js

...
.addEntry('app', './assets/js/app.js')
//     .addEntry('js/app', './assets/js/app.js')
//     .addStyleEntry('css/app')
//     .addStyleEntry('css/app', './assets/css/app.scss')
.enableSingleRuntimeChunk()
...
Run Code Online (Sandbox Code Playgroud)

然后进行纱线升级或纱线安装

PS:如果你安装了symfony/webpack-encore-bundle,你可以删除symfony/webpack-encore-pack

composer remove symfony/webpack-encore-pack
Run Code Online (Sandbox Code Playgroud)