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

CJS экспорт по умолчанию ​

Опция cjsDefault помогает улучшить совместимость при генерации модулей CommonJS (CJS). Эта опция включена по умолчанию.

Как это работает ​

Когда ваш модуль имеет только один экспорт по умолчанию и выходной формат установлен как CJS, tsdown автоматически преобразует:

  • export default ... в module.exports = ... в сгенерированном JavaScript файле.

Для файлов деклараций TypeScript (.d.ts) происходит преобразование:

  • export default ... в export = ...

Это гарантирует, что потребители, использующие синтаксис require CommonJS (require('your-module')), получат экспорт по умолчанию напрямую, что улучшает совместимость с инструментами и окружениями, которые ожидают такого поведения.

Пример ​

Исходный модуль:

ts
// src/index.ts
export default function greet() {
  console.log('Hello, world!')
}

Сгенерированный CJS вывод:

js
// dist/index.cjs
function greet() {
  console.log('Hello, world!')
}
module.exports = greet

Сгенерированный файл деклараций:

ts
// dist/index.d.cts
declare function greet(): void
export = greet

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