Что это такое?
tsup - простой сборщик TypeScript-библиотек и Node.js-пакетов поверх esbuild. Он удобен, когда нужно собрать пакет в ESM/CJS, сгенерировать .d.ts и не писать большой конфиг.
Установка
pnpm add -D tsup typescriptpackage.json
{
"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --clean"
},
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts"
}Конфигурация
tsup.config.ts
import { defineConfig } from 'tsup';
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
sourcemap: true,
clean: true,
splitting: false,
});Когда выбирать tsup
tsup хорошо подходит для:
- npm-библиотек;
- внутренних packages в монорепозитории;
- SDK;
- CLI;
- небольших Node.js-сервисов.
Для сложных frontend-приложений обычно лучше Vite, Webpack или фреймворковый сборщик.
Плюсы
- минимальный конфиг для TypeScript-библиотек;
- умеет ESM/CJS и
.d.ts; - использует скорость esbuild.
Минусы
- не подходит для сложных SPA как основной сборщик;
- не закрывает все сценарии asset pipeline;
- для declaration-файлов могут всплывать ограничения TypeScript-конфига.
Когда использовать
- нужно собрать npm-пакет, SDK, CLI или внутреннюю библиотеку;
- нужны ESM/CJS-выходы без большого конфига;
- проекту достаточно простого bundling pipeline.