Un projet Symfony 4.1.7 relativement récent après l’installation de Webpack Encore renvoie l’erreur
Une exception a été levée lors du rendu d'un modèle ("Impossible de trouver le fichier de points d'entrée dans Webpack: le fichier " .../public/build/entrypoints.json "n'existe pas.")
où le modèle inclut {{ encore_entry_link_tags('app') }}
lors du lancement de http://127.0.0.1:8000/
Qu'est-ce que j'ai manqué?
$ yarn encore dev
Running webpack ...
DONE Compiled successfully in 1974ms
I 3 files written to public\build
Done in 3.33s.
.../public/build
contient
app.css
app.js
manifest.json
versions locales de 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();
Mettez à jour votre contrainte de version dans package.json pour @ symfony/webpack-encore vers ^ 0.21.0.
...
"devDependencies": {
"@symfony/webpack-encore": "^0.21.0",
...
ajoutez .enableSingleRuntimeChunk () à votre 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()
...
Puis lancez la mise à niveau ou l’installation du fil
PS: Si vous avez installé symfony/webpack-encore-bundle, vous pouvez supprimer symfony/webpack-encore-pack
composer remove symfony/webpack-encore-pack
Si quelqu'un rencontre un problème similaire sur des serveurs de transfert ou de production: Assurez-vous que la génération d'actif est exécutée dans le processus de déploiement. Sur Heroku, par exemple, vous devez utiliser un script postinstall .
{
"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"
}
}