Setting the file. One moment.
Subchapter 8.10
references/option-cjs-default.mdMarkdown2 KBView on GitHub
The cjsDefault option improves compatibility when generating CommonJS modules. When enabled (default), modules with only a single default export use module.exports = ... instead of exports.default = ....
cjsDefault?: boolean // default: trueexport default defineConfig({
entry: ['src/index.ts'],
format: ['cjs'],
cjsDefault: true, // default behavior
})export default defineConfig({
entry: ['src/index.ts'],
format: ['cjs'],
cjsDefault: false,
})When your module has only a single default export, tsdown transforms:
Source:
// src/index.ts
export default function greet() {
console.log('Hello, world!')
}Generated CJS:
// dist/index.cjs
function greet() {
console.log('Hello, world!')
}
module.exports = greetGenerated Declaration:
// dist/index.d.cts
declare function greet(): void
export = greetThis allows consumers to use const greet = require('your-module') directly.
The default export stays as exports.default:
// dist/index.cjs
function greet() {
console.log('Hello, world!')
}
exports.default = greetConsumers need require('your-module').default.
exports.default behaviortrue)