Перейти к содержимому

Часто задаваемые вопросы

Почему tsdown не поддерживает режим заглушек (stub-mode)

tsdown не поддерживает режим заглушек из-за ряда ограничений и особенностей архитектуры:

  • Режим заглушек требует ручного вмешательства. При каждом изменении именованных экспортов необходимо заново запускать команду создания заглушек, чтобы обновить их. Это нарушает рабочий процесс разработчика и может привести к несоответствиям в коде.
  • Режим заглушек несовместим с плагинами. В этом режиме невозможно использовать плагины, а они часто необходимы для сложных сценариев и пользовательской логики сборки.

Рекомендуемые альтернативы

Вместо режима заглушек рекомендуется использовать более надежные и гибкие подходы:

  1. Режим наблюдения (Watch Mode): Самое простое решение — запускать tsdown в режиме наблюдения. В этом случае сборка автоматически обновляется при изменениях в коде, хотя процесс должен постоянно работать в фоновом режиме.

  2. Использование exports.devExports для разделения Dev/Prod-сред: Для более продвинутой и устойчивой настройки можно использовать опцию exports.devExports чтобы указать разные пути экспорта для разработки и продакшена. Это позволяет в процессе разработки ссылаться на исходные файлы, а при сборке — на готовые.

    • Если вы используете плагины: Рассмотрите вариант запуска кода через vite-node, который поддерживает плагины.
    • Если вы не используете плагины: Можно воспользоваться легковесными раннерами для TypeScript, такими как tsx, jiti, или unrun.
    • Если вы не используете плагины и ваш код совместим со встроенной поддержкой TypeScript в Node.js: Начиная с Node.js версии 22.18.0 и выше, TypeScript-файлы можно запускать напрямую без дополнительных инструментов.

Эти альтернативы обеспечивают более плавный и стабильный процесс разработки по сравнению с режимом заглушек, особенно по мере роста проекта или при необходимости поддержки плагинов. Более подробное объяснение этого решения доступно в этом комментарии на GitHub.

Распространяется под лицензией MIT.