Bundle your TypeScript library with no config, powered by esbuild.
Anything that's supported by Node.js natively, namely .js, .json, .mjs. And TypeScript .ts, .tsx.
This project is designed for bundling Node.js libraries.
Install it locally in your project folder:
npm i tsup -D
# Or Yarn
yarn add tsup --devYou can also install it globally but it's not recommended.
tsup [...files]Files are written into ./dist.
You can bundle multiple files in one go:
tsup src/index.ts src/cli.tsCode splitting is enabled by default and supported in cjs and esm format.
By default tsup bundles all import-ed modules but dependencies in your packages.json are always excluded, you can also use --external <module> flag to mark other packages as external.
tsup index.ts --dtsThis will emit ./dist/index.js and ./dist/index.d.ts.
Supported format: esm, cjs, (default) and iife.
You can bundle in multiple format in one go:
tsup src/index.ts --format esm,cjs,iifeThat will output files in following folder structure:
dist
├── esm
│ └── index.js
├── iife
│ └── index.js
└── index.jsYou can use --target es5 or "target": "es5" in tsconfig.json to compile the code down to es5, it's processed by buble. Some features are NOT supported by this target, namely: for .. of.
tsup src/index.ts --watchesbuild is fast because it doesn't perform any type checking, you already get type checking from your IDE like VS Code or WebStorm.
Additionally, if you want type checking at build time, you can enable --dts, which will run a real TypeScript compiler to generate declaration file so you get type checking as well.
For more details:
tsup --helpMIT © EGOIST (Kevin Titor)