10.3 — Bundle, plugins & Popper
⏱️ TL;DR — Trois façons de charger le JS : le bundle (
bootstrap.bundle.js, tout + Popper), le fichier séparé (bootstrap.js, sans Popper), ou des imports ES ciblés (import { Modal } from 'bootstrap') pour le tree-shaking. Popper est requis par dropdown, tooltip, popover.
🎯 Objectifs
- Choisir le bon mode de chargement.
- N’importer que les plugins utiles.
- Savoir quels composants dépendent de Popper.
Les trois modes
<!-- 1. Bundle : tout + Popper (le plus simple) -->
<script src=".../bootstrap.bundle.min.js"></script>// 2. Import global (bundler)
import * as bootstrap from 'bootstrap'
// 3. Imports ciblés (tree-shaking → bundle plus léger)
import { Modal } from 'bootstrap'
import Dropdown from 'bootstrap/js/dist/dropdown'Qui dépend de Popper ?
| Composant | Popper requis ? |
|---|---|
| Dropdown | ✅ |
| Tooltip | ✅ |
| Popover | ✅ |
| Modal, Offcanvas, Toast, Collapse, Tab, Carousel, ScrollSpy, Alert | ❌ |
Si vous n’utilisez aucun composant flottant, bootstrap.js (sans Popper) suffit et allège la page.
Import ciblé avec Popper
import Tooltip from 'bootstrap/js/dist/tooltip'
// Popper est importé automatiquement par le module tooltip
new Tooltip(document.querySelector('[data-bs-toggle="tooltip"]'))La liste des plugins
Alert, Button, Carousel, Collapse, Dropdown, Modal, Offcanvas, Popover, ScrollSpy, Tab, Toast, Tooltip.
Où placer le script ?
Juste avant </body> (le DOM est prêt) ou avec defer dans le <head>. La Data API s’initialise automatiquement au chargement du DOM.
⚠️ Piège — Charger
bootstrap.js(sans Popper) alors qu’on utilise des tooltips : ils ne s’affichent pas et une erreur Popper apparaît en console. En cas de doute, le bundle.
💡 Pour un dev React — Avec un bundler moderne, préférez les imports nommés (
import { Modal } from 'bootstrap') : le tree-shaking élimine les plugins non utilisés. Mais rappelez-vous que le JS natif s’intègre mal au cycle de vie React — voir Partie 11.
✏️ Exercices
- Vous n’utilisez que des modales et des collapses. Quel fichier JS suffit ?
✅ Solution
bootstrap.js (sans Popper), car ni modal ni collapse n’en dépendent.
- Importer uniquement le plugin Dropdown dans un projet Vite.
✅ Solution
import Dropdown from 'bootstrap/js/dist/dropdown'.
🧠 Quiz de révision
1. Que contient le bundle de plus que bootstrap.js ?
bootstrap.js ?Popper.
2. Trois composants qui nécessitent Popper ?
Dropdown, tooltip, popover.
3. Comment n’embarquer qu’un plugin ?
Import ES ciblé (import { Modal } from 'bootstrap').
4. Où placer la balise script ?
Avant </body> ou en defer.
5. La modale a-t-elle besoin de Popper ?
Non.
Chapitre suivant : 10.4 — Le monde sans jQuery