Миграция с tsup
tsup - это мощный и широко используемый бандлер, который во многом похож на tsdown. В то время как tsup построен на базе esbuild, tsdown использует возможности Rolldown, обеспечивая более быструю и мощную сборку.
Руководство по миграции
Если вы сейчас используете tsup и хотите перейти на tsdown, процесс миграции очень прост благодаря специальной команде migrate:
npx tsdown-migrateДля монорепозиториев можно указывать директории с помощью glob‑шаблонов:
npx tsdown-migrate packages/*Или перечислить несколько директорий явно:
npx tsdown-migrate packages/foo packages/barWARNING
Пожалуйста, сохраните все ваши изменения перед миграцией. В процессе миграции могут быть изменены ваши конфигурационные файлы, поэтому важно заранее зафиксировать или создать резервную копию всех изменений.
TIP
После миграции инструмент автоматически установит все зависимости. Команду нужно запускать из корневой директории вашего проекта.
Параметры миграции
Команда migrate поддерживает следующие параметры для настройки процесса миграции:
[...dirs]: Указывает, какие директории нужно мигрировать. Поддерживает glob‑шаблоны (например,packages/*). Если параметр не задан, по умолчанию используется текущая директория.--dry-run(или-d): Выполняет пробный запуск миграции без внесения изменений.
С помощью этих опций вы легко сможете адаптировать процесс миграции под нужды вашего проекта.
Отличия от tsup
Хотя tsdown стремится быть максимально совместимым с tsup, есть некоторые различия, о которых стоит знать:
Значения по умолчанию
format: По умолчанию используетсяesm.clean: Включено по умолчанию, и директория вывода (outDir) будет очищаться перед каждой сборкой.dts: Автоматически включается, если в вашемpackage.jsonесть полеtypingsилиtypes.target: По умолчанию считывается из поляengines.nodeв вашем файлеpackage.json, если оно доступно.
Различия в функциональности
Некоторые функции, доступные в tsup, пока ещё не реализованы в tsdown. Если вы обнаружите, что какой-то опции не хватает, пожалуйста, создайте issue, чтобы сообщить нам о ваших требованиях.
Новые возможности в tsdown
tsdown также предоставляет новые возможности, которых нет в tsup:
nodeProtocol: Управление обработкой импортов встроенных модулей Node.js:true: Добавляет префиксnode:к встроенным модулям (например,fs→node:fs)'strip': Удаляет префиксnode:из импортов (например,node:fs→fs)false: Оставляет импорты без изменений (по умолчанию)
Пожалуйста, проверьте вашу конфигурацию после миграции, чтобы убедиться, что она соответствует вашим ожиданиям.
Благодарности
tsdown не был бы возможен без вдохновения и вклада open-source сообщества. Мы выражаем искреннюю благодарность следующим проектам и людям:
- tsup:
tsdownво многом вдохновлёнtsupи даже использует части его кода. Простота и эффективностьtsupбыли ориентиром при разработкеtsdown. - @egoist: Автор
tsup, чья работа существенно повлияла на экосистему инструментов для JavaScript и TypeScript. Спасибо за вашу преданность делу и вклад в сообщество.