Skip to content

Migration to esbuild Build System, Streamlined Type Exports, and CI Workflow Updates

Choose a tag to compare

released this 24 Jul 06:50
· 59 commits to working since this release

This release centers on transitioning the project build system from Vite to esbuild. The primary focus is on modernization, improving maintainability, and clarifying package outputs and exports for consumers. The CI workflows and documentation build process have been updated for greater modularity and reliability.

Build System Migration

  • Replaced Vite and related plugins with a custom build.mjs script utilizing esbuild for ESM output and automated TypeScript declaration generation.
  • Removed all references to Vite (vite.config.ts, related dependencies, Vite-specific scripts) and SWC from package.json.
  • Updated project entry point in package.json to provide ESM output only, removing CommonJS entry and clarifying the exports field.
  • Improved .npmignore to exclude documentation, examples, source code, and build scripts from npm packages.

TypeScript and Exports Improvements

  • Enhanced TypeScript configuration (tsconfig.json) for stricter output management, specifying rootDir as src and restricting output to the dist directory.
  • Updated src/api.ts and src/index.ts to more clearly export option types, improving external type discovery and import consistency.

Testing and CI Updates

  • Introduced vitest.config.ts to replace Vite-based testing configuration with a dedicated Vitest setup, decoupling tests from the former build tool.
  • Modularized the documentation build logic into a reusable GitHub Actions composite action (.github/actions/build-docs), applied across documentation deployment and test workflows. This change improves maintainability and consistency in documentation builds.
  • Updated CI workflows to use the new documentation build action and removed redundant or Vite-dependent build steps.

Dependency Updates

  • Bumped @fjell/logging dependency to version 4.4.18.
  • Updated esbuild devDependency to 0.25.8.

Notable Impact and Migration Notes

  • Builds now use esbuild directly; there is no longer a CommonJS output or Vite-based development server. Consumers should import from the ESM entry point.
  • All testing and documentation pipelines are unaffected in semantics but benefit from simplified and more modular configurations.
  • Refer to the migration guide or repository documentation for adapting any custom workflows or development practices previously dependent on Vite.