In Version 12 bringt das React-Framework Next.js den neuen Compiler SWC und das neue Middleware-Feature als Beta-Funktion an den Start. Außerdem integriert Next.js jetzt Teile von React 18 und erlaubt damit die experimentelle Nutzung einiger neuer Funktionen.
Breaking Changes und ein schnellerer Compiler
Mit der Entfernung von Webpack 4 und der neuen Mindestanforderung von Node.js 12.22 bringt Next.js aber auch Breaking Changes, an denen Entwickelnde jetzt arbeiten müssen. Immerhin hatte bereits Next.js 11 Webpack 5 zum Standard erklärt.
Der bisherige Compiler Babel wird in Next.js 12 durch den in Rust geschriebenen SWC (Speedy Web Compiler) abgelöst. SWC setzen bereits das Web-Build-Tool Parcel und die Node-Alternative Deno ein. Durch die native Kompilierung sollen sich die Build- und Refresh-Zeiten deutlich verkürzen. Vercel, das Unternehmen hinter Next.js, spricht von bis zu dreimal schnelleren Refreshs und bis zu fünfmal schnelleren Builds – wenn die Codebasis groß genug ist, um überhaupt Unterschiede spürbar werden zu lassen. Immerhin: Allein die standardmäßig aktivierte Kompilierung mit Rust soll 17-mal schneller ablaufen als mit Babel. Dabei bleibt SWC zu Babel abwärtskompatibel.
Zwar wird die JavaScript-Bibliothek React weiterhin in Version 17 unterstützt. Erste Features der kommenden Version 18 können jedoch in Next.js 12 bereits experimentell genutzt werden. React 18 liegt noch als Alpha-Version vor. Wer sich für die Roadmap interessiert, kann die bei der React Working Group nachlesen. Ein kleines, aber feines neues Feature soll nicht ungenannt bleiben. So kann die Optimization-API jetzt neben WebP auch AVIF über Browser, die das Format unterstützen, ausliefern. So sollen noch mal um 20 Prozent geringere Dateigrößen erreicht werden.
Hier gibts Next.js 12
Next.js läuft unter Windows, dem Windows Subsystem for Linux (WSL), macOS und unter Linux. Ein Migrationsguide erläutert zu beachtende Fallstricke beim Umstieg auf Version 12. Wie immer, beschreibt das Team die neue Version in einem ausführlichen Blogbeitrag.