Installer
bun add "github:FacileStudio/muse#v0.6.0"Épinglez un tag. Suivre la branche par défaut veut dire qu’une poussée sur la bibliothèque
change silencieusement le build d’une app sans rapport. Boutique l’a appris : sans tag et sans
lockfile à jour, son build Docker prenait ce que main pointait à la minute près.
Trois branchements, et les trois sont nécessaires
1. La feuille de style.
@import '@facile/muse/styles';
@source '../node_modules/@facile/muse/src';tokens.css importe Tailwind lui-même, donc n’importez pas tailwindcss une seconde fois.
Le @source n’est pas optionnel : Tailwind v4 ne scanne pas node_modules, donc sans lui
chaque classe muse est purgée et les composants rendent une structure correcte et
complètement non stylée. L’échec n’apparaît que dans le CSS compilé — aucun contrôle ne
l’attrape.
2. L’optimiseur de dépendances.
optimizeDeps: { exclude: ['@facile/muse'] }muse livre du source non compilé, y compris des modules .svelte.ts. L’optimiseur de Vite les
passe à esbuild sans transformation TypeScript et le serveur de dev meurt. vite build ne fait
jamais tourner l’optimiseur, donc le build, le typecheck et la CI restent verts pendant que le
dev est complètement cassé.
3. L’élément <iconify-icon>.
if (browser) void import('iconify-icon');iconify-icon n’est pas une dépendance de muse. Treize composants rendent des <iconify-icon> qui restent inertes tant que le consommateur n’a pas enregistré l’élément
personnalisé. Échec silencieux : aucune icône, aucune erreur.
Le lockfile fait partie de l’épinglage
Changer package.json sans régénérer le lockfile fait échouer le build Docker d’un
consommateur qui tourne bun install --frozen-lockfile. Le déploiement plante et la production
continue à servir l’image précédente. Bumpez l’épingle et le lockfile dans le même commit.
Monter de version
Lisez MIGRATION.md. Il est
écrit au fil des changements, pas reconstruit après coup : chaque entrée dit ce qui casse,
comment ça se manifeste, et quoi faire.