unjs/mkdist

Lightweight file-to-file transpiler.

435

stars

382

commits

TypeScript

primary language

Sep 5, 2026

updated

Browse cluster: Vue.js state management and SSR

README

mkdist

npm version npm downloads Github Actions Codecov

Lightweight file-to-file transformer

✅ Copies all assets

✅ Supports Vue Single File Components

✅ Fast and minimal transform by esbuild

.d.ts generation for .ts, .js and .vue files

✅ Support postcss (autoprefixer, cssnano and postcss-nested enabled out of the box!)

❓ Why?

Bundling libraries isn't always the best choice:

  • We lose original file structure
  • We lose modern syntax by transpiling in bundle
  • We lose critical-css by extracting css to a global dist (vue)
  • Dependencies will be always imported from bundle even if not used (a second bundling step might fix this but it usually won't happen in development and for dependencies with side-effects)

While there are tools like tsc and @babel/cli, they mostly focus on transpiling rather than keeping source level quality. Also they lack support for handling custom extensions like .vue and copying assets.

🚀 Usage

npx mkdist [rootDir] [--src=src] [--dist=dist] [--no-clean] [--pattern=glob [--pattern=more-glob]] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts]

License

MIT

Contributors

renovate[bot]

183 commits

pi0

114 commits

danielroe

54 commits

Teages

5 commits

unjs/mkdist

Lightweight file-to-file transpiler.

435

stars

382

commits

TypeScript

primary language

Sep 5, 2026

updated

Browse cluster: Vue.js state management and SSR

README

mkdist

npm version npm downloads Github Actions Codecov

Lightweight file-to-file transformer

✅ Copies all assets

✅ Supports Vue Single File Components

✅ Fast and minimal transform by esbuild

.d.ts generation for .ts, .js and .vue files

✅ Support postcss (autoprefixer, cssnano and postcss-nested enabled out of the box!)

❓ Why?

Bundling libraries isn't always the best choice:

  • We lose original file structure
  • We lose modern syntax by transpiling in bundle
  • We lose critical-css by extracting css to a global dist (vue)
  • Dependencies will be always imported from bundle even if not used (a second bundling step might fix this but it usually won't happen in development and for dependencies with side-effects)

While there are tools like tsc and @babel/cli, they mostly focus on transpiling rather than keeping source level quality. Also they lack support for handling custom extensions like .vue and copying assets.

🚀 Usage

npx mkdist [rootDir] [--src=src] [--dist=dist] [--no-clean] [--pattern=glob [--pattern=more-glob]] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts]

License

MIT

Contributors

renovate[bot]

183 commits

pi0

114 commits

danielroe

54 commits

Teages

5 commits

Languages

TypeScript

93.4%

JavaScript

3.9%

Vue

2.4%