Saso
raw JSON → 5.0.2 verified Sat Apr 25 auth: no javascript
Zero-configuration bundler for building modern JavaScript/TypeScript applications, currently at v5.0.2. It provides a fast, opinionated build process without configuration files, supporting both CommonJS and ESM outputs. Key differentiators include an intuitive CLI, built-in support for JSX, TypeScript, and CSS modules, and a plugin system for extensibility. Minimal setup required — ideal for quick prototypes or small-to-medium projects. Released under ISC license.
Common errors
error TypeError: saso is not a function ↓
cause Using default import after v5 which exports a function, but bundler may confuse with object.
fix
Ensure you import default as: import saso from 'saso' (not as object destructuring).
error Cannot find module 'saso' when using require() ↓
cause v5 is ESM-only, require() is not supported.
fix
Use import syntax or set type:"module" in package.json.
error Error: Unknown option `entry` in SasoConfig ↓
cause Using old v3 configuration shape with v5.
fix
Update config keys: use 'entry' as string, 'outfile' instead of 'output'.
Warnings
breaking saso v5 migrated to ESM-only. CommonJS require() will throw ERR_REQUIRE_ESM. ↓
fix Use import syntax or upgrade to ESM project.
breaking Default export changed from object to function in v4. ↓
fix Update to new API: saso(options) instead of new saso.Saso().
deprecated saso v3 API using 'new Saso()' is removed. ↓
fix Migrate to functional API saso(options).
gotcha Configuration file saso.config.js is ignored if programmatic API is used. ↓
fix Either use CLI or programmatic API exclusively.
Install
npm install saso yarn add saso pnpm add saso Imports
- default wrong
const saso = require('saso')correctimport saso from 'saso' - build wrong
const { build } = require('saso')correctimport { build } from 'saso' - SasoConfig wrong
import SasoConfig from 'saso'correctimport { SasoConfig } from 'saso'
Quickstart
import saso from 'saso';
saso({
entry: './src/index.tsx',
outfile: './dist/bundle.js',
format: 'esm',
minify: true,
}).then(() => console.log('Build complete')).catch(console.error);