ncc vs tsdown
ncc
github.comtsdown
tsdown.devSide by side
| Figure | ncc | tsdown |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Linux | Yes | — |
| Plans published | 1 | 0 |
| Spec score · JavaScript Build Tools | 8.2 (#5) | 7.0 (#27) |
| Configuration | The design goals include zero configuration and built-in TypeScript support. | tsdown reads package.json and tsconfig.json to infer defaults, including dependency externalization and some declaration generation settings. |
| Install | The README gives `npm i -g @vercel/ncc` as the global installation command. | The guide provides installation commands for npm, pnpm, Yarn, and Bun. |
| Installation | The README gives `npm i -g @vercel/ncc` as the installation command. | The getting-started guide documents installation through npm, pnpm, yarn, and Bun. |
| Integrations | The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`. | The project says it supports Rolldown, Unplugin, and most Rollup plugins, as well as some Vite plugins. |
| License | The repository lists an MIT license. | The project website states that tsdown is released under the MIT License. |
| Purpose | ncc is a CLI that compiles a Node.js module and its dependencies into a single file. | tsdown is a bundler designed for building TypeScript and JavaScript libraries. |
Plans
In their own words
ncc
ncc is a free, MIT-licensed command-line tool for compiling a Node.js module and its dependencies into one file. It is distributed through npm as `@vercel/ncc`, with `npm i -g @vercel/ncc` given as the global installation command. The project targets publishing minimal npm packages and sending only relevant application code to serverless environments. Its design goals include zero configuration, built-in TypeScript support, and handling Node.js programs and npm modules. Inputs can include TypeScript, binary addons, and dynamic requires. Build options cover minification, source maps, watched builds, external modules, and ECMAScript target selection. Node.js programs can call ncc programmatically with options for caching, externals, minification, source maps, and asset builds. `.ts` and `.tsx` inputs require a `tsconfig.json`. Module-format behavior includes automatic ES module output for `.mjs` files and `.js` files inside a `type: module` package boundary. Support examples cover Sequelize with MariaDB and `@google-cloud/vision` with `google-proto-files`. Dynamically loaded assets that static analysis cannot identify may not work correctly. It runs on Linux.