Rolldown 1.1.0 : lazyBarrel activé par défaut

Rolldown 1.1.0 : lazyBarrel activé par défaut

lschvn

Rolldown 1.1.0 est sorti le 3 juin 2026. Malgré l'étiquette de version mineure, cette release apporte deux changements de comportement à connaître avant de mettre à jour.

lazyBarrel activé par défaut

Le changement principal : experimental.lazyBarrel passe maintenant à true. Lorsqu'un module barrel (un fichier qui réexporte depuis d'autres modules) est reconnu comme sans effets secondaires, Rolldown ignore la compilation des modules réexportés qui ne sont jamais utilisés par le code consommateur.

L'impact pratique est le plus visible sur les grandes bibliothèques de composants comme Ant Design ou @mui/icons-material. Dans de nombreux projets, ces bibliothèques exposent des centaines d'icônes ou composants via des fichiers barrel, mais une application n'utilise qu'une poignée d'entre eux. Avec lazyBarrel activé par défaut, Rolldown peut désormais ignorer les exports non utilisés, réduisant à la fois le temps de compilation et la taille du bundle final.

Les notes de version reconnaissent un cas limites : si un barrel est incorrectement classé comme sans effets secondaires, l'optimisation pourrait supprimer un module sur lequel comptait du code pour ses effets secondaires. La solution de contournement est simple pour l'instant :

export default {
  experimental: { lazyBarrel: false },
}

L'équipe Rolldown précise que cette option sera supprimée dans une future version. Si vous rencontrez un cas nécessitant sa désactivation, la recommandation est d'ouvrir une issue pour améliorer la logique de détection sous-jacente.

Résolution des références de projet tsconfig alignée sur TypeScript

Le deuxième changement concerne la façon dont Rolldown résout les chemins via les fichiers tsconfig de type solution (le pattern utilisé par Vite par défaut, où tsconfig.json ne liste que des références et délègue les vraies options à tsconfig.app.json ou tsconfig.node.json).

La mise à niveau d'oxc_resolver de 11.19.1 vers 11.21.0 aligne le comportement de Rolldown sur celui de tsc :

  • Priorité des références : quand le tsconfig racine a des références, un projet référencé qui inclut un fichier prime désormais sur la racine. Auparavant la racine était matchée en premier.
  • Comportement allowJs : le choix d'inclure un fichier .js, .jsx, .mjs ou .cjs dépend désormais du allowJs du projet référencé concerné, pas de celui de la racine.

La release reconnaît que c'est un changement de comportement pour les projets qui comptaient sur l'ancienne résolution "la racine gagne". La recommandation est d'aligner votre structure tsconfig sur les attentes de TypeScript.

Autres changements

Le changelog complet inclut également :

  • import.meta.glob supporte désormais une option caseSensitive
  • Un avertissement SOURCEMAP_BROKEN est émis pour les hooks renderChunk et transform quand les sourcemaps peuvent être invalides
  • Meilleurs messages d'erreur : un tsconfig manquant émet désormais TSCONFIG_ERROR au lieu de UNHANDLEABLE_ERROR
  • Le code-splitting supporte group-local includeDependenciesRecursively
  • Plusieurs corrections de bugs dans l'optimiseur de chunks pour la gestion des entrées dynamiques

Rolldown 1.1.0 est disponible sur npm.


faq:

  • question: "Que signifie 'lazyBarrel' dans Rolldown ?" answer: "Un 'barrel' est un fichier qui réexporte depuis plusieurs autres modules. L'optimisation lazyBarrel détecte quand un barrel n'a pas d'effets secondaires et ignore la compilation des modules réexportés non utilisés, accélérant les builds pour les grandes bibliothèques."
  • question: "Mon build ne fonctionne plus après la mise à jour de Rolldown. Que vérifier ?" answer: "Vérifiez d'abord si vous comptez sur des effets secondaires des réexports d'un barrel. Vous pouvez temporairement désactiver avec experimental: { lazyBarrel: false }. Ensuite, si vous utilisez les références de projet TypeScript, vérifiez que votre structure tsconfig correspond aux attentes de TypeScript."
  • question: "Quel impact pour les utilisateurs de Vite ?" answer: "Rolldown est le bundler qui équipe Vite 8 et supérieur. Ces changements s'appliquent automatiquement quand vous mettez à jour Rolldown ou quand Vite publie une nouvelle version de Rolldown."

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Rolldown 1.1.4 Désactive `experimental.lazyBarrel` par Défaut, un Mois Après que 1.1.0 l'Ait Activé
tooling

Rolldown 1.1.4 Désactive `experimental.lazyBarrel` par Défaut, un Mois Après que 1.1.0 l'Ait Activé

Rolldown [v1.1.4](https://github.com/rolldown/rolldown/releases/tag/v1.1.4), publié le 2026-07-01T14:02:02Z, embarque un changement de fonctionnalité et 19 corrections de bogues. Le changement de fonctionnalité est une annulation partielle du [bascule par défaut de la v1.1.0](https://github.com/rolldown/rolldown/releases/tag/v1.1.0) du 2026-06-03: `experimental.lazyBarrel` est à nouveau désactivé par défaut, après quatre semaines de signalements de correction sur le comportement par défaut. La release durcit aussi le chemin du mode dev en forçant `lazyBarrel` à off dès que `experimental.devMode` est défini (PR [#10060](https://github.com/rolldown/rolldown/pull/10060)), en plus du forçage existant à off pour `treeshake`. L'annulation de la bascule par défaut (PR [#10071](https://github.com/rolldown/rolldown/pull/10071)) et le fix du mode dev s'authentifient chacun en une ligne: « disable `experimental.lazyBarrel` by default » et « fix(dev): disable lazy barrel in dev mode », et le suivi de la cause racine est la nouvelle [issue #10085](https://github.com/rolldown/rolldown/issues/10085) « Tracking strictExecutionOrder correctness and architecture issues », ouverte le lendemain de la release. La release fait suite à [Rolldown v1.1.3](https://github.com/rolldown/rolldown/releases/tag/v1.1.3) (2026-06-24) et est la première release depuis 1.1.0 à toucher la surface de configuration lazyBarrel.
Prettier 3.9 refond cinq parseurs : micromark pour Markdown, yaml v2, GraphQL.js v17, un parseur Flow en Rust et Angular
tooling

Prettier 3.9 refond cinq parseurs : micromark pour Markdown, yaml v2, GraphQL.js v17, un parseur Flow en Rust et Angular

Prettier 3.9.0, publié le 27 juin 2026 (prettier/prettier, billet de Fisker Cheung), est une release centrée sur les parseurs qui fait passer Markdown de remark-parse v8 à micromark v4 (meilleure conformité CommonMark et GFM et une série de bugs de parsing de longue date corrigés), YAML à yaml v2, GraphQL à GraphQL.js v17 (arguments de fragment et directives sur les définitions de directive), Flow au nouveau parseur oxidized basé sur Rust de l'équipe Flow (environ 37 % plus rapide sur les fixtures Flow valides de Prettier et 43 % plus rapide sur flow_parser.js en benchmarks parser-only locaux) et Angular. Le formateur JavaScript et TypeScript est aussi retravaillé, en particulier en mode --no-semi où les commentaires autour de break et continue sont maintenant stables entre plusieurs passages (un fix d'idempotence), plus la suppression des parenthèses redondantes dans les return, l'alignement des interpolations de template embarquées et l'inlining des expressions de négation logique. La release retire la syntaxe legacy import ... assert {} (Babel 8 a supprimé le plugin de parseur ; migrez vers with), corrige une option --cache-strategy content silencieusement cassée et empêche les fichiers EditorConfig au-dessus des worktrees Git de s'infiltrer. L'équipe rappelle d'épingler la version exacte dans package.json car les changements de formatage vont produire des diffs.
Playwright v1.61.0 : passkeys WebAuthn, vraie API WebStorage et modes vidéo à la trace pour le test runner
tooling

Playwright v1.61.0 : passkeys WebAuthn, vraie API WebStorage et modes vidéo à la trace pour le test runner

Playwright v1.61.0 (15 juin 2026) livre un authentificateur virtuel pour les cérémonies WebAuthn/passkey, une API de première classe page.localStorage / page.sessionStorage, les détails de sécurité réseau sur les APIResponse, et aligne l'enregistrement vidéo du test runner sur l'enregistrement de trace. Canaux navigateur : Chromium 149, Firefox 151, WebKit 26.5.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.