Skip to content
SPECIFICTION
Get listed

ncc

github.com

Free plan Linux
Visit github.com
Spec score 8.2 #5 of 27 in JavaScript Build Tools

What it is

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.

Spec sheet

What it does
ncc is a CLI that compiles a Node.js module and its dependencies into a single file.Read 9 Oct 2026 · github.com
Purpose
ncc is a CLI that compiles a Node.js module and its dependencies into a single file.Read 4 Oct 2026 · github.com
Integrations
The package support guide gives configuration examples for Sequelize with MariaDB and for `@google-cloud/vision` with `google-proto-files`.Read 4 Oct 2026 · github.com
License
The repository lists an MIT license.Read 9 Oct 2026 · github.com
Build options
The CLI offers minification, source maps, asset builds, externals, watch mode, and ECMAScript target selection.Read 9 Oct 2026 · github.com
Compatibility caveat
Dynamically loaded assets that cannot be statically analyzed may not work correctly because files and assets are relocated using a static evaluator.Read 9 Oct 2026 · github.com
Configuration
The design goals include zero configuration and built-in TypeScript support.Read 4 Oct 2026 · github.com
Design goals
Its design goals include zero configuration, built-in TypeScript support, and support for Node.js programs and npm modules.Read 9 Oct 2026 · github.com
Distribution
The README directs users to install ncc from npm as `@vercel/ncc`.Read 4 Oct 2026 · github.com
Install
The README gives `npm i -g @vercel/ncc` as the global installation command.Read 4 Oct 2026 · github.com
Installation
The README gives `npm i -g @vercel/ncc` as the installation command.Read 9 Oct 2026 · github.com
Intended uses
The project lists publishing minimal npm packages and shipping relevant app code to serverless environments as motivations.Read 9 Oct 2026 · github.com
Module formats
When building an `.mjs` file or a `.js` file inside a `type: module` package boundary, ncc automatically creates ES module output.Read 9 Oct 2026 · github.com
Node.js scope
The project supports Node.js programs as input and output.Read 4 Oct 2026 · github.com
Package integration examples
The package support guide gives configuration examples for Sequelize with MariaDB and `@google-cloud/vision`.Read 9 Oct 2026 · github.com
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.Read 9 Oct 2026 · github.com
Programmatic use
The README documents using ncc from Node.js with options for caching, externals, minification, source maps, asset builds, and watch mode.Read 9 Oct 2026 · github.com
Support channel
The package support guide suggests searching the issue queue or posting an issue when a package does not run with ncc.Read 9 Oct 2026 · github.com
Supported inputs
It supports TypeScript, binary addons, and dynamic requires.Read 9 Oct 2026 · github.com
TypeScript requirement
For `.ts` or `.tsx` inputs, the README says a `tsconfig.json` file is necessary.Read 4 Oct 2026 · github.com
Use cases
The project lists publishing minimal npm packages and shipping only relevant app code to serverless environments as motivations.Read 4 Oct 2026 · github.com

Plans and prices

@vercel/ncc Free MIT-licensed open-source CLI Read 9 Oct 2026 · github.com

Every ncc plan and price →

Strong points and limits

Strong points

  • Free MIT-licensed CLI
  • Compiles dependencies into one file
  • Built-in TypeScript support
  • Minification and source-map options
  • Programmatic Node.js interface

Limits

  • Linux is the listed platform
  • TypeScript inputs require tsconfig.json
  • Unanalyzable dynamic assets may fail
  • Some packages need extra options

Who it suits

ncc suits Node.js developers packaging npm modules or preparing code for serverless environments. It also fits projects needing TypeScript input, configurable builds, or programmatic compilation.

Verdict

ncc provides a focused way to bundle Node.js programs and dependencies into a single output file. Its zero-configuration goals and build controls are balanced by static-analysis caveats for dynamic assets and package-specific setups.

Where Specifiction places it

Alternatives to nccAll alternatives →