Encore est une surcouche développée par Symfony pour simplifier l’utilisation de Webpack dans un projet Symfony. Webpack est un outil puissant pour bundler, minifier et optimiser les fichiers JavaScript, CSS et autres assets front-end. Encore permet de configurer Webpack de manière intuitive, sans avoir à écrire manuellement des fichiers de configuration complexes. Il gère la compilation, la minification, la gestion des dépendances, et même la prise en charge de préprocesseurs comme Sass ou TypeScript.
Encore
Webpack
Avantages :
Avec Symfony Flex, il suffit de lancer :
composer require symfony/webpack-encore-pack yarn install
Cela crée un fichier webpack.config.js et installe les dépendances nécessaires.
webpack.config.js
Dans webpack.config.js, on définit les points d’entrée (entry points) pour JS/CSS :
Encore.addEntry('app', './assets/app.js');
Du coup, on peut activer des fonctionnalités comme Sass, React, ou TypeScript via des méthodes dédiées :
Encore.enableSassLoader(); Encore.enableReactPreset();
Exemple d’utilisation dans Twig :
Pour inclure tes assets compilés dans une vue Twig :
{{ encore_entry_script_tags('app') }} {{ encore_entry_link_tags('app') }}
Pour compiler les assets en mode développement :
yarn encore dev --watch
Pour une version optimisée en production :
yarn encore production
Encore/Webpack est indispensable pour gérer efficacement les assets front-end dans Symfony, surtout si on utilise des frameworks JS modernes ou des préprocesseurs CSS.
assets/ ├── styles/ │ ├── _variables.scss # Variables (couleurs, tailles, etc.) │ ├── _mixins.scss # Mixins réutilisables │ ├── _base.scss # Styles de base (reset, typographie, etc.) │ ├── _components/ # Styles par composant (boutons, cartes, etc.) │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ └── ... │ └── app.scss # Fichier principal qui importe tout