Le composant AssetMapper, introduit dans la version 6.3 de Symfony, permet une gestion des assets (images, Css, Javascript) sans utiliser de bundler.
AssetMapper, qui ne nécessite que Php, simplifie de nombreux projets, en remplaçant Webpack (WebpackEncore), outil parfois inutilement complexe pour gérer les assets.
Nous verrons comment installer les packages nécessaires et les configurer à travers l'exemble de l'installation de Bootstrap dans un projet.
composer require symfony/asset-mapper symfony/asset symfony/twig-packs
Cela créera les 4 fichiers suivants :
assets/app.js Votre fichier javascript principal;assets/styles/app.css Votre fichier CSS princpale;config/packages/asset_mapper.yaml La où vous configurez le chemin de vos assets;importmap.php Votre fichier de confuguration importmap.Cela mettra à jour votre fichier templates/base.html.twig :
{% block javascripts %} {% block importmap %}{{ importmap('app') }}{% endblock %} {% endblock %}php bin/console importmap:require bootstrap
Cela mettra à jour votre fichier importmap.php
// importmap.php
return [
'app' => [
'path' => './assets/app.js',
'entrypoint' => true,
],
'bootstrap' => [
'version' => '5.3.8',
],
];
Pour récupérer les Css de Bootstrap :
php bin/console importmap:require bootstrap/dist/css/bootstrap.min.css
Cela mettra à jour votre fichier importmap.php
// importmap.php
return [
'app' => [
'path' => './assets/app.js',
'entrypoint' => true,
],
'bootstrap' => [
'version' => '5.3.0',
],
'bootstrap/dist/css/bootstrap.min.css' => [
'version' => '5.3.8',
'type' => 'css',
],
];
Il ne reste plus qu'à mettre à jour votre fichier app.js :
// assets/app.js
import './bootstrap.js';
import 'bootstrap';
import 'bootstrap/dist/css/bootstrap.min.css';
// console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');
Bootstrap est installé dans votre projet et vous pouvez ajouter d'autres Bibliothèques Javascript( Tailwind, AOS...) avec le Asset Mapper. N'hésitez pas à consulter le site de Symfony UX pour aller plus loin.
Pour en savoir plus, la documentation officielle, c'est ici
Besoin d’une solution clé en main ou d’un accompagnement technique ? Me contacter