ncc
ncc is a free command-line tool that compiles a Node.js module and its dependencies into a single file.
What ncc is
ncc is a free command-line tool that compiles a Node.js module and its dependencies into a single file. The project presents it as an option for publishing minimal npm packages or shipping relevant application code to serverless environments. Its design goals include zero configuration and built-in TypeScript support, and it accepts Node.js programs as both input and output. Build options include minification, source maps, watched builds, external modules, and ECMAScript target selection. Node.js programs can also call ncc through its programmatic interface, with options for caching, externals, minification, source maps, and asset builds. It supports TypeScript, binary addons, and dynamic requires; `.mjs` files and `.js` files inside a `type: module` package boundary produce ES module output automatically. TypeScript `.ts` and `.tsx` inputs need a `tsconfig.json` file. Some packages may need extra configuration, and dynamically loaded assets that cannot be analyzed statically may not work correctly. ncc is distributed on npm as `@vercel/ncc`; the global install command is `npm i -g @vercel/ncc`. The repository is MIT licensed.
Good
- Compiles a Node.js module into one file
- Built-in TypeScript support
- Offers minification and source maps
- Free and MIT licensed
Watch out
- TypeScript inputs require a tsconfig.json file
- Dynamically loaded assets may not work correctly
- Some packages may require extra configuration
Who it suits
ncc suits Node.js developers who want to package a module and its dependencies into one file, including for npm publishing or serverless environments. It also offers a programmatic interface for Node.js projects.
Verdict
ncc provides a free way to bundle Node.js code, with build options for common packaging needs and a programmatic interface. Check package-specific setup and the limits around dynamically loaded assets before relying on a build.
Plans and prices
From ncc's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| @vercel/ncc | Free | MIT-licensed open-source CLI |
The facts
Each one read from ncc's own pages, with the date it was checked.
What it does
- Build options
- The CLI offers minification, source maps, asset builds, externals, watch mode, and ECMAScript target selection.checked 9 Oct 2026
- Compatibility caveat
- Dynamically loaded assets that cannot be statically analyzed may not work correctly because files and assets are relocated using a static evaluator.checked 9 Oct 2026
- Configuration
- The design goals include zero configuration and built-in TypeScript support.checked 4 Oct 2026
- Design goals
- Its design goals include zero configuration, built-in TypeScript support, and support for Node.js programs and npm modules.checked 9 Oct 2026
- Distribution
- The README directs users to install ncc from npm as `@vercel/ncc`.checked 4 Oct 2026
- Install
- The README gives `npm i -g @vercel/ncc` as the global installation command.checked 4 Oct 2026
- Installation
- The README gives `npm i -g @vercel/ncc` as the installation command.checked 9 Oct 2026
- Integrations
- The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`.checked 4 Oct 2026
- Intended uses
- The project lists publishing minimal npm packages and shipping relevant app code to serverless environments as motivations.checked 9 Oct 2026
- License
- The repository lists an MIT license.checked 9 Oct 2026
- Module formats
- When building an `.mjs` file or a `.js` file inside a `type: module` package boundary, ncc automatically creates ES module output.checked 9 Oct 2026
- Node.js scope
- The project supports Node.js programs as input and output.checked 4 Oct 2026
- Package integration examples
- The package support guide gives configuration examples for Sequelize with MariaDB and `@google-cloud/vision`.checked 9 Oct 2026
- Package-specific setup
- The project says some packages may need extra options to work better with ncc static analysis and directs users to its issue queue for troubleshooting.checked 9 Oct 2026
- Programmatic use
- The README documents using ncc from Node.js with options for caching, externals, minification, source maps, asset builds, and watch mode.checked 9 Oct 2026
- Purpose
- ncc is a CLI that compiles a Node.js module and its dependencies into a single file.checked 4 Oct 2026
- Support channel
- The package support guide suggests searching the issue queue or posting an issue when a package does not run with ncc.checked 9 Oct 2026
- Supported inputs
- It supports TypeScript, binary addons, and dynamic requires.checked 9 Oct 2026
- TypeScript requirement
- For `.ts` or `.tsx` inputs, the README says a `tsconfig.json` file is necessary.checked 4 Oct 2026
- Use cases
- The project lists publishing minimal npm packages and shipping only relevant app code to serverless environments as motivations.checked 4 Oct 2026
- What it does
- ncc is a CLI that compiles a Node.js module and its dependencies into a single file.checked 9 Oct 2026




