【问题标题】:Symfony Webpack: Could not find the entrypoints file from WebpackSymfony Webpack:无法从 Webpack 中找到入口点文件
【发布时间】:2018-11-22 17:48:43
【问题描述】:

一个比较新鲜的Symfony 4.1.7项目安装Webpack Encore后报错

在渲染模板期间引发了异常 ("无法从 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.

.../public/build 包含

app.css
app.js
manifest.json

本地 Symfony 版本:

symfony/webpack-encore-bundle       v1.0.0
symfony/webpack-encore-pack         v1.0.3

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();

【问题讨论】:

    标签: php symfony webpack


    【解决方案1】:

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

    ...
    "devDependencies": {
        "@symfony/webpack-encore": "^0.21.0",
    ...
    

    将 .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()
    ...
    

    然后运行 ​​yarn upgrade 或 yarn install

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

    composer remove symfony/webpack-encore-pack
    

    【讨论】:

    • 非常感谢!我注意到您的编辑回复:.enableSingleRuntimeChunk() 删除了一些弃用通知。一切都(似乎?)很好。
    • @geoB 一切都很好。谢谢。
    【解决方案2】:

    如果有人在登台或生产服务器上遇到类似问题:确保资产构建在部署过程中运行。例如,在 Heroku 上,您需要使用 postinstall script

    {
        "devDependencies": {
            "@fortawesome/fontawesome-free": "^5.5.0",
            "@symfony/webpack-encore": "^0.22.0",
            "webpack-notifier": "^1.6.0"
        },
        "license": "UNLICENSED",
        "private": true,
        "scripts": {
            "dev-server": "encore dev-server",
            "dev": "encore dev",
            "watch": "encore dev --watch",
            "postinstall": "encore production --progress" // executed during deployment to Heroku
        },
        "dependencies": {
            "bootstrap": "^4.1.3",
            "fontawesome": "^4.7.2",
            "jquery": "^3.3.1",
            "node-sass": "^4.10.0",
            "popper.js": "^1.14.6",
            "sass-loader": "^7.1.0"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 2018-02-25
      相关资源
      最近更新 更多