Skip to content

[3a] Update JS toolchain: bump webpack/Babel, consider Vite/esbuild #26

@kalwalt

Description

@kalwalt

Summary

Bump webpack, Babel, and other stale JS dependencies (~4 years out of date); consider migrating to Vite/Rollup/esbuild

Environment

  • Product/Service: FeatureSET-Display — Build system
  • File: package.json, package-lock.json
  • Current pinned versions: webpack 5.70, Babel 7.17, axios 0.26

Problem Description

package.json pins webpack 5.70, Babel 7.17, and axios 0.26 — all approximately 4 years old. Outdated toolchain versions mean missed security patches, incompatibility with modern Node.js, and slower builds compared to current alternatives. @babel/transform-runtime adds overhead that is unnecessary when targeting modern browsers (evergreen, ESM-native).

Expected Behavior

  • All JS build dependencies are on current stable versions.
  • Build times are comparable to or faster than current baseline.
  • No known CVEs in any dependency.
  • package-lock.json reflects the updated dependency tree.

Actual Behavior

Dependencies are ~4 years stale. axios 0.26 carries an unpatched CVE (also tracked in issue 2c).

Tasks

  • Bump webpack to current stable, or replace with Vite / Rollup / esbuild for faster builds
  • Bump Babel to current stable
  • Evaluate and drop @babel/transform-runtime if targeting modern (evergreen) browsers
  • Refresh package-lock.json after all dependency changes
  • Verify npm run build and npm run build-es6 still produce correct output

Impact

Medium — Security hygiene and developer experience. Stale toolchain blocks adoption of modern JS features and may conflict with newer Node.js versions.

Additional Context

Replacing webpack with Vite or esbuild can give an order-of-magnitude build speed improvement. This change pairs naturally with issue 3b (Emscripten build flag cleanup) — both touch the build system and are good to land together. Once the toolchain is updated, 3c (test system) and 3d (CI) build on a clean base.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions