Next.js 9.0.7 — reliability, smaller runtimes, and default compression
Key Points
- Gzip enabled by default for node servers
- Windows build concurrency improved via jest-worker
- TypeScript errors limited to active pages
Summary
Next.js 9.0.7 (and the 9.0.x minor releases) deliver reliability and developer-experience improvements with no breaking changes. Highlights include more reliable and parallel builds on Windows, gzip enabled by default for Node servers, reduced TypeScript noise by reporting errors only for active pages, anonymous telemetry for usage-informed improvements, improved head cleanup without extra element classes, prevention of non-page files in the pages directory, and runtime tree-shaking so unused parts (e.g. next/dynamic) no longer bloat client bundles.
Key Points
- Build concurrency: Replaced worker-farm with jest-worker to make parallel builds reliable across macOS, Linux, and Windows; benefits from Node 12 worker_threads when available.
- Compression: Gzip compression is enabled by default for next start and custom servers (serverless target is not affected). If you already handle compression at the proxy or in a custom server, Next.js will not double-compress.
- TypeScript: The built-in tsc --watch now reports type errors only for pages currently compiled by on-demand entries, reducing noise during development; full checks still run on next build or in your editor.
- Telemetry: Anonymous opt-in telemetry is introduced to guide prioritization and validate optimizations; opt-out is available (see nextjs.org/telemetry).
- Build UX: next build shows activity dots to indicate progress so it’s clearer when work is happening.
- next/head: Removed the per-element next-head class and switched to a meta-count approach for cleanups, reducing HTML payload and avoiding injected-class validation issues.
- Pages validation: The pages directory is validated to ensure files export a React component, preventing accidental non-pages from slowing builds and affecting code-splitting.
- Runtime improvements: Client runtime is split so unused parts (like next/dynamic) are not included, reducing JS download/parse for apps that don't use them.
Practical impact / Action items
- No breaking changes; upgrade recommended for reliability and smaller bundles.
- If you self-host, confirm gzip behavior is acceptable; serverless deployments are unchanged.
- If you rely on full-time tsc errors in dev, continue running full checks locally or during CI/next build.
- To opt-out of telemetry, follow instructions at nextjs.org/telemetry.