Susee is a TypeScript-first bundler designed specifically for JavaScript/TypeScript library packages. Currently at version 1.5.1, the project has seen active development, with significant features like a plugin pipeline and stabilized dual-format output (ESM and CommonJS) introduced in version 1.0.0. It differentiates itself by offering robust dependency graph resolution, type-checking, and the ability to automatically update `package.json` fields based on the output. Susee supports multiple entry points with subpath exports and loads its configuration from `susee.config.{ts,js,mjs}`. While powerful for modern TypeScript libraries, it currently rejects CommonJS and JSX/TSX dependencies by default, requiring specific plugins for compatibility.
npm install suseeVerified import paths — ran on the pinned version, not inferred.
Installs Susee, generates a minimal config, and demonstrates building a project with dual ESM/CJS outputs and a subpath CLI export.
For CommonJS dependencies, install and configure `@suseejs/plugin-commonjs`. For JSX/TSX, consider pre-compiling or using an alternative bundler if a plugin is not available.
Set `allowUpdatePackageJson: true` in your `susee.config.ts` to allow Susee to manage these `package.json` fields automatically.
Align your project's `tsconfig.json` with Susee's enforced options, or ensure your codebase is compatible with `NodeNext` module resolution and `ESNext` features.
Ensure you only use `npx susee` or `npx susee init`. Avoid passing unsupported arguments or commands.
Install `@suseejs/plugin-commonjs` (`npm i -D @suseejs/plugin-commonjs`) and add it to your `susee.config.ts` plugins array.
Verify that all `entry` paths in your `susee.config.ts` correctly point to existing source files.
Ensure that every `entryPoint` in your `susee.config.ts` has a unique `exportPath` string.
The Susee CLI only supports `susee` (for building) and `susee init` (for config generation). Remove any other commands or arguments.