← Back to all sparks
W

webpack

INFRA · APIS
Velocity6.3

Static module bundler for modern JavaScript applications

webpack is absorbing its own loader ecosystem — TypeScript, CSS and HTML now build natively.

zero-confignative-typescriptloader-consolidationparser-performanceruntime-portability
Current state
webpack 5.109 flips experiments.typescript, experiments.css, experiments.html and experiments.asyncWebAssembly to "auto", so a project on Node 22.6+ compiles TypeScript, CSS and HTML with no loader registered at all. The same release adds built-in build progress via infrastructureLogging.progress, resource hints (preload/prefetch/modulepreload/preconnect) on by default for ESM output, and CommonJS module concatenation. Underneath, the 5.108 line is a sustained parser-performance campaign — struct-of-arrays HTML ASTs, dropped unused CSS value tokens, lower peak memory.
Where it's heading
The direction is unmistakable: webpack is deleting the reason its configs became notorious. Every capability that used to require ts-loader, css-loader or html-webpack-plugin is being pulled into core and defaulted on, which is the only credible answer to zero-config rivals that never asked users to assemble a loader chain. Alongside that, a bun target and repeated Bun/Deno compatibility guards show webpack no longer assumes Node is the only runtime it must run under.
Prediction
Expect the "auto" experiments to graduate out of the experiments namespace into stable top-level options, and expect the loader-shaped surface area to keep shrinking as more of the pipeline lands in core.

Recent moves

  1. 5d ago

    Alias and cache-cleanup fixes after the native-build switch

    A cleanup patch trailing the 5.109 defaults change: package-directory aliases ending in .js resolve again, CSS sources are named by resource path in source maps, and stale filesystem cache packs are collected in one pass. Housekeeping on the surfaces 5.109.0 just widened.

    View source ↗
  2. 6d ago

    Bun and Deno compatibility fixes, faster HTML parser

    Lazy-compilation teardown now survives Bun and Deno, the Node wasm loader returns a real ArrayBuffer so WebAssembly.instantiate accepts it, and the HTML tokenizer gets module-scope helpers plus pre-sized AST columns. Both halves of webpack's current push — run anywhere, parse faster — in one patch.

    View source ↗
  3. 10d ago

    TypeScript, CSS and HTML now compile with no loader registered

    ⚡ SPARK

    The release that turns the trajectory into a default: TypeScript, CSS, HTML and async WebAssembly all switch to "auto", active unless a loader claims those files. Paired with built-in progress reporting and automatic resource hints for ESM output, it is webpack conceding that config assembly was the problem.

    View source ↗
  4. 29d ago

    CSS and HTML parsers cut CPU and memory

    Non-CSS-Modules parsing stops building unused selector nodes and value tokens, and the HTML AST moves to struct-of-arrays storage. Making the native CSS and HTML paths cheap is the precondition for defaulting them on, which 5.109.0 then did.

    View source ↗
  5. 1mo ago

    HMR codegen crash fix for unresolved harmony imports

    A CSS parse speedup plus two HMR fixes for harmony accept dependencies without a module or chunk id. Maintenance on the incremental path, no user-facing change in capability.

    View source ↗
  6. 1mo ago

    Lazy barrel and node: prefix externals fixes

    Two narrow corrections: side-effect imports deferred through lazy barrels, and the node: prefix respected for core modules used as externals. Edge-case repair on features shipped earlier in the 5.108 line.

    View source ↗