Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. JavaScript Build Tools
  3. ncc

ncc

What it is

ncc is a free command-line tool that compiles a Node.js module and its dependencies into one file. The project presents this as useful for publishing minimal npm packages or shipping only the application code needed by serverless environments. It aims to provide zero-configuration builds and includes TypeScript support, accepting Node.js programs as input and output. Supported inputs include TypeScript, binary addons, and dynamic requires. Build options include minification, source maps, watched builds, external modules, and ECMAScript target selection. Node.js programs can also call ncc programmatically, with options for caching, externals, minification, source maps, and asset builds. The README gives `npm i -g @vercel/ncc` as the global install command, and the package is distributed on npm as `@vercel/ncc`. TypeScript files ending in `.ts` or `.tsx` require a `tsconfig.json`. The project provides configuration examples for Sequelize with MariaDB and `@google-cloud/vision` with `google-proto-files`; some packages may need additional options for static analysis. Dynamically loaded assets that cannot be statically analyzed may not work correctly. The repository is MIT licensed.

For and against

For

  • Free, MIT-licensed CLI
  • Compiles Node.js modules and dependencies into one file
  • Supports TypeScript and binary addons
  • Offers minification, source maps, and watched builds
  • Can be called programmatically from Node.js

Against

  • TypeScript inputs require a `tsconfig.json`
  • Some packages may need extra configuration
  • Unanalyzable dynamic assets may not work correctly

The verdict

ncc gives Node.js developers command-line and programmatic options for producing single-file builds. Check package-specific setup and dynamic asset behavior for projects that rely on them.

Who it suits

ncc suits Node.js developers who want to bundle a module and its dependencies into a single file for npm packages or serverless deployments. It is free and supports TypeScript, with a `tsconfig.json` required for `.ts` and `.tsx` inputs.

Plans and prices

@vercel/ncc

Free

MIT-licensed open-source CLI

Every plan, in full

On the record

Build options
The CLI offers minification, source maps, asset builds, externals, watch mode, and ECMAScript target selection.github.com · read 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 · read 9 Oct 2026
Configuration
The design goals include zero configuration and built-in TypeScript support.github.com · read 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 · read 9 Oct 2026
Distribution
The README directs users to install ncc from npm as `@vercel/ncc`.github.com · read 4 Oct 2026
Install
The README gives `npm i -g @vercel/ncc` as the global installation command.github.com · read 4 Oct 2026
Installation
The README gives `npm i -g @vercel/ncc` as the installation command.github.com · read 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 · read 4 Oct 2026
Intended uses
The project lists publishing minimal npm packages and shipping relevant app code to serverless environments as motivations.github.com · read 9 Oct 2026
License
The repository lists an MIT license.github.com · read 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 · read 9 Oct 2026
Node.js scope
The project supports Node.js programs as input and output.github.com · read 4 Oct 2026
Package integration examples
The package support guide gives configuration examples for Sequelize with MariaDB and `@google-cloud/vision`.github.com · read 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 · read 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 · read 9 Oct 2026
Purpose
ncc is a CLI that compiles a Node.js module and its dependencies into a single file.github.com · read 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 · read 9 Oct 2026
Supported inputs
It supports TypeScript, binary addons, and dynamic requires.github.com · read 9 Oct 2026

The review

ncc is a focused bundler for Node.js developers who need a module and its dependencies reduced to one distributable file. It suits npm publishers and teams packaging serverless functions, especially when a zero-configuration workflow and TypeScript support matter. Its controls are practical, but projects with runtime-discovered assets need careful qualification before committing.

Overview

ncc compiles a Node.js module and its dependencies into a single file. That narrow objective makes it useful for publishing minimal npm packages or shipping only the relevant application code to a serverless environment, without turning the build into a larger project-management system.

Zero configuration is a stated design goal, and Node.js programs and npm modules are supported as both input and output. The package accepts TypeScript, binary addons, and dynamic requires. Install the command-line package globally with npm i -g @vercel/ncc, or invoke it from another Node.js program when builds need to be part of an automated process.

Module format handling is sensible for modern Node projects: an .mjs entry, or a .js file inside a package boundary marked type: module, produces ES module output automatically. TypeScript inputs require a tsconfig.json, so the zero-configuration goal does not remove that project-level requirement.

Key features

  • Single-file compilation: Bundling dependencies into one file can simplify deployment and distribution for npm packages and serverless workloads. It is less relevant when a project needs a broad multi-asset output structure.
  • Build controls: Minification reduces output size, source maps preserve a path toward debugging, watch mode supports iterative development, external modules let you keep selected dependencies outside the bundle, and ECMAScript target selection helps align output with a runtime.
  • Programmatic API: Node.js callers can configure caching, externals, minification, source maps, and asset builds. This makes ncc suitable for build scripts and tooling that need repeatable configuration rather than a shell command alone.
  • TypeScript and Node coverage: Built-in TypeScript support, plus handling for binary addons and dynamic requires, broadens the kinds of Node.js packages it can package. TypeScript projects still need a valid tsconfig.json.
  • Package integrations: Support guidance includes configuration examples for Sequelize with MariaDB and for @google-cloud/vision with google-proto-files. These examples show where package-specific settings can matter rather than promising universal drop-in compatibility.

The important limitation is static analysis. Dynamically loaded assets that cannot be analyzed may not work correctly, and the project notes that some packages need extra options. When a dependency fails, its support guidance points developers to the issue queue for troubleshooting.

Pricing

PlanPriceWhat it includes
@vercel/nccfreeMIT-licensed open-source CLI

There is one free plan, no free trial, and no paid tier or seat, quota, or renewal condition stated. That makes ncc straightforward for individual developers and teams that can operate an open-source command-line tool. The trade-off is that package-specific troubleshooting remains part of the user’s build work rather than a priced support tier.

Platforms

ncc is listed for Linux. It is distributed through npm as @vercel/ncc, with command-line and Node.js programmatic usage.

Who it's for

Choose ncc when a Node.js or TypeScript project benefits from a single-file artifact, such as a minimal npm package or a serverless deployment containing only relevant application code. It also fits developers who want minification, source maps, watch builds, externals, and target selection without adopting a larger build platform.

Look elsewhere when runtime asset discovery is central to the application or when dependencies require extensive package-specific configuration. ncc's static-analysis caveat can turn an apparently simple bundle into a troubleshooting exercise.

Pros and cons

Pros

  • Clear deployment target: A single-file result directly serves compact npm and serverless distribution goals.
  • Useful output controls: Minification, source maps, watch mode, externals, and ECMAScript targets cover common packaging decisions.
  • CLI and API options: Teams can use a global command or configure builds from Node.js code.
  • Open-source cost: The MIT-licensed tool is free with no paid tiers.

Cons

  • Static-analysis boundary: Assets loaded in ways ncc cannot analyze may fail in the resulting build.
  • Package-specific setup: Some dependencies need extra options, so zero configuration is not universal.
  • TypeScript prerequisite: tsconfig.json is required for .ts and .tsx inputs.
  • Linux listing: Linux is the stated platform, which may not suit teams seeking a broader platform commitment.

Alternatives

For a wider survey of bundlers, start with JavaScript Build Tools. Choose Rolldown instead when you want a free, open-source tool listed across Android, API, Linux, macOS, web, and Windows. SWC is another free, open-source Rust-based developer toolchain with broad platform listings. esbuild suits readers seeking free MIT-licensed software available as a native executable or WebAssembly version.

Rslib is a free MIT-licensed option associated with ByteDance Inc. TypeScript Playground is better for browser-based work focused on a single text document. Google Closure Compiler offers a free open-source Java application, Bazel library, and npm package. Oxc is a free, open-source choice for Linux, macOS, and Windows, while Rsbuild is free MIT-licensed software listed for the web.

Verdict

ncc is a strong choice for Node.js developers who want a free, MIT-licensed path to compact single-file builds, with both CLI and programmatic workflows and useful control over minification, maps, externals, and targets. Choose it for npm or serverless packaging where dependencies can be statically understood; look elsewhere when dynamic assets or unusual package loading are fundamental to the application.

Alternatives to ncc

Every alternative, ranked