Astro 7.0.0-beta.6 stabilise le cache des routes et fait de la compression d'espaces JSX la valeur par défaut

Astro 7.0.0-beta.6 stabilise le cache des routes et fait de la compression d'espaces JSX la valeur par défaut

lschvn

Astro 7.0.0-beta.6 est sortie le 19 juin 2026, un jour après la beta.5 du 18 juin, et poursuit la série de promotions de fonctionnalités expérimentales longues à stables de la branche 7.0. La principale nouvelle de la beta.6 est que le cache des routes, caché derrière experimental.cache et experimental.routeRules depuis la sortie de 6.0, devient une API stable de premier niveau. La beta.5, la version juste avant, a fait de compressHTML la valeur 'jsx' par défaut, ce qui modifie le HTML rendu de tout projet qui s'appuyait sur la préservation des espaces entre éléments inline. Ces deux changements s'ajoutent à la stabilisation en beta.4 de Sätteri comme pipeline Markdown par défaut, couverte dans les notes de sortie d'Astro 7.0.0-beta.4 plus tôt dans le cycle.

La branche 7.0 avance rapidement vers la stable. La beta.4 (15 juin), la beta.5 (18 juin), la beta.6 (19 juin), et deux alphas avant elles ont promu presque toutes les API expérimentales que 6.x livrait derrière un drapeau, basculé sur un Markdown natif Rust, basculé la gestion d'espaces par défaut sur le style JSX, et stabilisé maintenant le cache des routes. Le coût de migration pour tout projet en 6.x est réel mais mécanique : un renommage de configuration, un audit des espaces, et une vérification que votre fournisseur de cache personnalisé fait partie des options de premier niveau prises en charge.

Le cache des routes devient stable

Le cache des routes était le dernier grand bloc experimental restant de 6.0. La beta.6 le promeut en configuration de premier niveau. La migration tient en un renommage plus un choix de fournisseur :

// astro.config.mjs
import { defineConfig, memoryCache } from 'astro/config';

export default defineConfig({
  cache: {
    provider: memoryCache(),
  },
  routeRules: {
    '/blog/[...path]': { maxAge: 300, swr: 60 },
  },
});

Dans les pages .astro, vous définissez les directives avec Astro.cache, et dans les routes API et le middleware vous utilisez context.cache. Astro traduit ces directives en en-têtes adaptés au fournisseur configuré ou en comportement d'exécution, de sorte que la même configuration fonctionne avec memoryCache, fsCache, cloudflareKV, vercelISR, et les autres fournisseurs livrés avec la branche 7.0. La matrice complète des fournisseurs est documentée dans le guide du cache des routes qui accompagne la sortie.

Pour les pages pré-rendues, les règles s'appliquent toujours au build : les directives sont encodées dans les en-têtes Cache-Control du HTML statique, ce qui signifie qu'un CDN devant votre site respectera le même maxAge et swr que vous auriez utilisé pour une page rendue à la demande. C'est la partie la plus subtile du changement pour les projets qui avaient déjà un CDN devant une sortie pré-rendue : la même configuration routeRules contrôle désormais à la fois le cache d'exécution à la demande et les en-têtes de cache des assets statiques.

« jsx » devient la valeur par défaut de compressHTML

La beta.5 a fait de 'jsx' la nouvelle valeur par défaut de l'option compressHTML. C'est le même mode de suppression d'espaces qu'utilisent React, Solid, Preact et les autres frameworks basés sur JSX : les espaces autour des éléments sont supprimés, et une ligne significative d'espace entre deux éléments inline est préservée.

La différence compte en pratique. Dans l'ancien mode de compression HTML-aware (l'ancien défaut compressHTML: true), Astro conservait un espace unique entre deux éléments inline quand il y avait un retour à la ligne littéral dans la source. Dans le nouveau défaut 'jsx', ce retour à la ligne est supprimé, ce qui signifie qu'un template comme :

<p>
  Bonjour <span>monde</span>
</p>

est rendu comme avant, mais un template comme :

<p>
  Cliquez
  <a href="/x">ici</a>
  pour en savoir plus
</p>

est désormais rendu sans le saut de ligne entre « Cliquez », le lien, et « pour en savoir plus ». Partout où vous voulez réellement que cet espace soit visible, écrivez-le explicitement avec {' '}.

Pour les projets qui ont besoin de conserver l'ancien comportement le temps d'auditer, la migration tient en une ligne :

// astro.config.mjs
export default defineConfig({
  compressHTML: true, // compression HTML-aware, le défaut 6.x
});

Réglez compressHTML: false pour désactiver complètement la compression, ou compressHTML: 'jsx' pour conserver explicitement la nouvelle valeur par défaut. La beta.5 corrige aussi un ensemble de bugs de routage avancé astro/hono et astro/fetch qui s'accumulaient dans le cycle 7.0, dont un où la page 500.astro personnalisée recevait une prop error vide quand l'erreur provenait du middleware.

La vue d'ensemble de la 7.0

Entre la beta.4 et la beta.6, la branche 7.0 a désormais stabilisé ou remplacé presque toutes les fonctionnalités expérimentales que 6.x livrait derrière un drapeau. Sätteri (Markdown natif Rust) est la valeur par défaut, le routage avancé avec Hono est stable, le logger personnalisé est stable, le moteur de rendu en streaming est stable, la compression d'espaces JSX est la valeur par défaut, et le cache des routes est désormais stable au premier niveau. Le travail restant sur la 7.0 avant la stable tient surtout dans le polissage de l'outillage de build, la graduation finale de @astrojs/markdown-satteri, et le support de Vite 8 arrivé au cours du cycle alpha et beta.

Que faire maintenant

Pour les projets en 6.x : passez au dernier patch 6.x et commencez la migration de configuration tôt. Sortez cache et routeRules du bloc experimental, choisissez votre fournisseur, et exécutez la beta.6 contre une branche de staging. Auditez vos templates pour le changement d'espaces : partout où vous comptez sur un retour à la ligne entre deux éléments inline produisant un espace visible, basculez sur {' '} ou retombez sur compressHTML: true le temps de l'audit. La liste complète des ruptures de la branche 7.0 est dans le CHANGELOG du dépôt withastro/astro. Gardez la production sur la branche 6.x et traitez la beta.6 comme la cible de validation.

Questions fréquentes

TypeScript 7.0 RC arrive : le compilateur Go atteint le Release Candidate, environ 10 fois plus rapide, avec une migration côte à côte

TypeScript 7.0 RC (18 juin 2026) est le release candidate du compilateur que Microsoft a porté depuis sa base de code TypeScript auto-amorcée vers Go. Il est souvent environ 10 fois plus rapide que TypeScript 6.0, fournit un paquet de compatibilité tsc6 pour fonctionner côte à côte avec 6.0, ajoute les options de parallélisme --checkers/--builders/--singleThreaded et un mode watch reconstruit sur un port Go de @parcel/watcher, et transforme toutes les dépréciations de 6.0 en erreurs fatales. La version stable est prévue dans le mois qui vient, une API programmatique stable étant repoussée à 7.1.

Bun intègre le React Compiler directement dans son bundler, environ 20x plus rapide que le plugin Babel

La PR #32504, fusionnée dans oven-sh/bun le 20 juin 2026, transforme le portage Rust amont du React Compiler en transformation intégrée à `bun build`, derrière `--react-compiler` et `Bun.build({ reactCompiler: true })`. Bun porte directement l'espace de travail `compiler/crates/` de `facebook/react` dans une unique crate `src/react_compiler/` (~62 k LOC) plutôt que de passer par Babel, SWC ou Oxc, et sur une grosse base de code React (environ 860 composants, 1400 slots de mémo) la passe du compilateur s'exécute en 465 ms contre 9,15 s pour le plugin Babel. La fonctionnalité est expérimentale, désactivée par défaut, et livrée avec `reactCompilerOutputMode` (client ou ssr) et un script `scripts/sync-react-compiler.sh` pour resynchroniser le portage.

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Astro 7.0.0-beta.4 fait de Sätteri le processeur Markdown par défaut et promeut le routage avancé, le logger personnalisé et le rendu en flux en stable
frameworks

Astro 7.0.0-beta.4 fait de Sätteri le processeur Markdown par défaut et promeut le routage avancé, le logger personnalisé et le rendu en flux en stable

Astro 7.0.0-beta.4 (15 juin 2026) active par défaut le pipeline Markdown Rust Sätteri, retire le drapeau expérimental du routage avancé, du logger personnalisé et du nouveau moteur de rendu, supprime les commandes CLI obsolètes astro db/login/logout/link/init, et intègre en standard le mode serveur de développement en arrière-plan ajouté en alpha.2.
Oxlint v1.71 et Oxfmt v0.56 livrent les gains des crates v0.137, ajoutent 18 nouvelles règles de linter et domptent la traversée du cycle de vie React avec un refactor en itérateur streamed
tooling

Oxlint v1.71 et Oxfmt v0.56 livrent les gains des crates v0.137, ajoutent 18 nouvelles règles de linter et domptent la traversée du cycle de vie React avec un refactor en itérateur streamed

Oxlint apps_v1.71.0 et oxfmt apps_v0.56.0, tous deux publiés le 2026-06-22, bouclent le cycle des crates v0.137 côté apps. Oxlint v1.71 reprend la nouvelle passe de minifier `treeshake pure typed arrays` (#23469), le correctif `prefer-query-selector` à sélecteur composé, 28 corrections de bugs de lint (en grande partie le travail de réécriture de fixer de Yunfei He), 13 entrées de performance ancrées sur un refactor de dispatch de règles en buckets (#23450, #23452, #23482-#23486, #23489, #23492), et le démarrage de Tokio uniquement pour le LSP dans oxlint (#23447). Oxfmt v0.56.0 livre 9 corrections de bugs (normalisation CRLF pour le texte supprimé par `// @ts-ignore` dans #23701 et #23702, le correctif de panique de chaîne de membres #23698, la préservation du `export default` avec cast de type #23697) et 3 entrées de performance de formatter qui suppriment les copies d'arena sur le texte bigint, littéral numérique et littéral de chaîne. v1.71 est la première release d'apps depuis v1.70.0 le 2026-06-15, et la dernière avant la release de crates v0.138 qui arrivera le lundi 2026-06-29.
Astro 7.0.0 stable passe à Vite 8, fait du compilateur Rust la valeur par défaut, ajoute un serveur de dev en arrière-plan pour les agents de code IA, et promeut le cache des routes, le routage avancé et Sätteri au premier plan
frameworks

Astro 7.0.0 stable passe à Vite 8, fait du compilateur Rust la valeur par défaut, ajoute un serveur de dev en arrière-plan pour les agents de code IA, et promeut le cache des routes, le routage avancé et Sätteri au premier plan

Astro 7.0.0, publié le 2026-06-22, livre la branche stable 7.0 après dix semaines de beta. Les principales évolutions : montée vers Vite 8, compilateur Rust par défaut (le compilateur Go est supprimé), pipeline Markdown Sätteri par défaut (remark/rehype ne fait plus partie de l'installation par défaut), routage avancé promu depuis l'experimental (avec src/fetch.ts comme nouveau point d'entrée par défaut), cache des routes promu depuis l'experimental (cache et routeRules de premier niveau, avec les fournisseurs cacheNetlify() et cacheVercel() qui arrivent dans la même release), mode serveur de dev en arrière-plan conçu pour les agents de code IA (astro dev --background, fichier de verrouillage .astro/dev.json, astro dev stop|status|logs), compressHTML: 'jsx' comme nouvelle valeur par défaut, paquet @astrojs/db supprimé, et chaque intégration officielle bumped d'une version majeure (vue 7, react 6, svelte 9, preact 6, solid-js 7, vercel 11, netlify 8, node 11). create-astro@5.1.0, livré dans la même vague, écrit désormais un fichier AGENTS.md dans chaque nouveau projet avec un lien symbolique CLAUDE.md pointant dessus.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

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