Freedom251 › JavaScript Build Tools
ncc

What ncc is
ncc compiles a Node.js module and its dependencies into one file. The project lists publishing minimal npm packages and sending only relevant application code to serverless environments as reasons to use it. It accepts Node.js programs and supports TypeScript, binary addons, and dynamic requires. The project aims for zero-configuration builds and includes built-in TypeScript support. Its CLI offers minification, source maps, watched builds, external modules, and ECMAScript target selection. Node.js programs can also call ncc directly, with options for caching, externals, minification, source maps, and asset builds. For `.mjs` files and `.js` files within a `type: module` package boundary, it automatically creates ES module output. Install it from npm as `@vercel/ncc`; the listed plan is free. TypeScript `.ts` and `.tsx` inputs require a `tsconfig.json`. Dynamically loaded assets that static analysis cannot inspect may not work correctly. The project provides package configuration examples and recommends searching or posting in its issue queue when a package needs troubleshooting.
Who it suits
ncc suits Node.js developers who want to bundle modules for npm distribution or serverless environments. Its CLI and programmatic options support both direct builds and use from another Node.js program.
What it does well
- Compiles modules and dependencies into one file
- Supports TypeScript, binary addons, and dynamic requires
- Offers minification, source maps, and watched builds
- Can be called programmatically from Node.js
- MIT-licensed and listed as free
What to know first
- TypeScript inputs require a tsconfig.json file
- Some dynamically loaded assets may not work correctly
- Some packages may need extra configuration
Limits
For TypeScript `.ts` and `.tsx` inputs, a `tsconfig.json` file is required. Dynamically loaded assets that cannot be statically analyzed may not work correctly, and some packages may need extra configuration options.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| @vercel/ncc | MIT-licensed open-source CLI | Free |
As github.com lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Install ncc globally from npm with `npm i -g @vercel/ncc`.
- Use a Node.js program or module as the build input.
- For `.ts` or `.tsx` input, provide a `tsconfig.json`.
- Choose CLI options such as minification, source maps, watched builds, externals, or an ECMAScript target as needed.
- For programmatic use, call the package from Node.js with the options your build needs.
Verdict
ncc provides command-line and programmatic options for bundling Node.js programs, with support for TypeScript and several build controls. Check the TypeScript configuration requirement and static analysis caveat against the packages and assets you plan to bundle.
Questions
How much does ncc cost?
The listed plan is free. The project is MIT-licensed.
Is there a free plan or free trial?
There is a free plan. There is no free trial.
Which platforms does it support?
Linux is the listed platform.
Where can I install ncc?
It is distributed on npm as `@vercel/ncc`. The global installation command is `npm i -g @vercel/ncc`.
Does ncc support TypeScript?
Yes. Inputs ending in `.ts` or `.tsx` require a `tsconfig.json` file.
What integrations are documented?
The package support guide provides configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`.
Facts from ncc's own pages
- Build options
- The CLI offers minification, source maps, asset builds, externals, watch mode, and ECMAScript target selection. · github.com, 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. · github.com, 9 Oct 2026
- Configuration
- The design goals include zero configuration and built-in TypeScript support. · github.com, 4 Oct 2026
- Design goals
- Its design goals include zero configuration, built-in TypeScript support, and support for Node.js programs and npm modules. · github.com, 9 Oct 2026
- Distribution
- The README directs users to install ncc from npm as `@vercel/ncc`. · github.com, 4 Oct 2026
- Install
- The README gives `npm i -g @vercel/ncc` as the global installation command. · github.com, 4 Oct 2026
- Installation
- The README gives `npm i -g @vercel/ncc` as the installation command. · github.com, 9 Oct 2026
- Integrations
- The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`. · github.com, 4 Oct 2026
- Intended uses
- The project lists publishing minimal npm packages and shipping relevant app code to serverless environments as motivations. · github.com, 9 Oct 2026
- License
- The repository lists an MIT license. · github.com, 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. · github.com, 9 Oct 2026
- Node.js scope
- The project supports Node.js programs as input and output. · github.com, 4 Oct 2026
- Package integration examples
- The package support guide gives configuration examples for Sequelize with MariaDB and `@google-cloud/vision`. · github.com, 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. · github.com, 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. · github.com, 9 Oct 2026
- Purpose
- ncc is a CLI that compiles a Node.js module and its dependencies into a single file. · github.com, 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. · github.com, 9 Oct 2026
- Supported inputs
- It supports TypeScript, binary addons, and dynamic requires. · github.com, 9 Oct 2026
- TypeScript requirement
- For `.ts` or `.tsx` inputs, the README says a `tsconfig.json` file is necessary. · github.com, 4 Oct 2026
- Use cases
- The project lists publishing minimal npm packages and shipping only relevant app code to serverless environments as motivations. · github.com, 4 Oct 2026
- What it does
- ncc is a CLI that compiles a Node.js module and its dependencies into a single file. · github.com, 9 Oct 2026
Where ncc stands on Freedom251
- JavaScript Build Tools#13 of 27