This module is a Typescript CommonJS and ESM Builder for Node.js.
It provides a simple way to build your Typescript projects as CommonJS and ESM modules.
It uses tsc
and default tsconfig.json to build the project then rewrote import and export of esm files adding .mjs extension and indexes.
npm i @fgiova/cjs-esm-ts-builder
npx @fgiova/cjs-esm-ts-builder
or
npm install --save-dev @fgiova/cjs-esm-ts-builder
esmBuilder
-
--target
: The target version of ECMAScript to compile to. Default ises2020
. -
--esmFolder
: The folder where the ESM files will be generated. Default isesm
. -
--cjsFolder
: The folder where the CommonJS files will be generated. Default iscjs
. -
--buildFolder
: The folder where the build files will be generated. Default isdist
. -
--help
: Show help message.
const { build } = require("@fgiova/cjs-esm-ts-builder");
const options = {
target: "es2020",
esmFolder: "esm",
cjsFolder: "cjs",
buildFolder: "dist"
};
build(options)
.then(() => {
console.log("Build completed");
})
.catch((err) => {
console.error(err);
});
{
...
"main": "./dist/cjs/index.js",
"types": "./dist/cjs/index.d.ts",
"module": "./dist/esm/index.mjs",
"exports": {
".": {
"import": {
"types": "./dist/esm/index.d.mts",
"default": "./dist/esm/index.mjs"
},
"require": {
"types": "./dist/cjs/index.d.ts",
"default": "./dist/cjs/index.js"
}
}
},
"files": [
"dist"
],
...
}
-
target
: The target version of ECMAScript to compile to. Default ises2020
. -
esmFolder
: The folder where the ESM files will be generated. Default isesm
. -
cjsFolder
: The folder where the CommonJS files will be generated. Default iscjs
. -
buildFolder
: The folder where the build files will be generated. Default isdist
.
- Tested with Node.js >= 20
- Work only on *nix systems (Linux, MacOS, etc.)
Licensed under MIT.