Часто задаваемые вопросы
Почему tsdown не поддерживает режим заглушек (stub-mode)
tsdown не поддерживает режим заглушек из-за ряда ограничений и особенностей архитектуры:
- Режим заглушек требует ручного вмешательства. При каждом изменении именованных экспортов необходимо заново запускать команду создания заглушек, чтобы обновить их. Это нарушает рабочий процесс разработчика и может привести к несоответствиям в коде.
- Режим заглушек несовместим с плагинами. В этом режиме невозможно использовать плагины, а они часто необходимы для сложных сценариев и пользовательской логики сборки.
Рекомендуемые альтернативы
Вместо режима заглушек рекомендуется использовать более надежные и гибкие подходы:
Режим наблюдения (Watch Mode): Самое простое решение — запускать
tsdownв режиме наблюдения. В этом случае сборка автоматически обновляется при изменениях в коде, хотя процесс должен постоянно работать в фоновом режиме.Использование
exports.devExportsдля разделения Dev/Prod-сред: Для более продвинутой и устойчивой настройки можно использовать опциюexports.devExportsчтобы указать разные пути экспорта для разработки и продакшена. Это позволяет в процессе разработки ссылаться на исходные файлы, а при сборке — на готовые.- Если вы используете плагины: Рассмотрите вариант запуска кода через vite-node, который поддерживает плагины.
- Если вы не используете плагины: Можно воспользоваться легковесными раннерами для TypeScript, такими как tsx, jiti, или unrun.
- Если вы не используете плагины и ваш код совместим со встроенной поддержкой TypeScript в Node.js: Начиная с Node.js версии 22.18.0 и выше, TypeScript-файлы можно запускать напрямую без дополнительных инструментов.
Эти альтернативы обеспечивают более плавный и стабильный процесс разработки по сравнению с режимом заглушек, особенно по мере роста проекта или при необходимости поддержки плагинов. Более подробное объяснение этого решения доступно в этом комментарии на GitHub.