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

Формат вывода

По умолчанию tsdown генерирует JavaScript-код в формате ESM (ECMAScript Module). Однако вы можете указать желаемый формат вывода с помощью опции --format:

bash
tsdown --format esm # по умолчанию

Доступные форматы

  • esm: формат ECMAScript Module, идеально подходит для современных JavaScript-окружений, включая браузеры и Node.js.
  • cjs: формат CommonJS, часто используемый в проектах Node.js.
  • iife: Immediately Invoked Function Expression (немедленно вызываемое функциональное выражение), подходит для встраивания в теги <script> или автономного использования в браузере.
  • umd: Универсальный модульный стандарт, подходящий для работы с AMD, CommonJS и глобальными переменными.

Пример

bash
# Генерирует вывод в формате ESM (по умолчанию)
tsdown --format esm

# Генерирует вывод как в ESM, так и в CJS форматах
tsdown --format esm --format cjs

# Генерирует вывод в формате IIFE для использования в браузере
tsdown --format iife

TIP

Вы можете указать несколько форматов в одной команде для генерации выходных файлов для разных окружений. Например, комбинирование esm и cjs обеспечивает совместимость как с современными, так и с устаревшими системами.

Переопределение конфигурации по форматам

Вы можете переопределить отдельные параметры конфигурации для каждого формата вывода, указав объект format в файле конфигурации. Это позволяет настраивать такие параметры, как target и другие, индивидуально для каждого формата.

ts
export default defineConfig({
  entry: ['./src/index.js'],
  format: {
    esm: {
      target: ['es2015'],
    },
    cjs: {
      target: ['node20'],
    },
  },
})

В этом примере выходной файл в формате ESM будет нацелен на стандарт ES2015, а формат CJS — на Node.js 20. Такой подход обеспечивает более точный контроль над процессом сборки для разных форматов модулей.

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