ncc
Expert guidance for @vercel/ncc — a simple CLI for compiling Node.js modules into a single file with all dependencies included. Use when bundling serverless functions, CLI tools, or any Node.js project into a self-contained file.
- License 许可
- MIT
- 最近更新
- 2026-03-30
- Stars
- ★ 2
- Forks
- 0
01 前言 Front Matter
- name
- ncc
- chainTo
- [ { "message": "ncc bundling detected for serverless function — loading Vercel Functions guidance for runtime configuration, streaming, and Fluid Compute.", "pattern": "ncc\\s+build.*api/|ncc\\s+build.*handler|ncc\\s+build.*serverless|ncc\\s+build.*function", "targetSkill": "vercel-functions", "skipIfFileContains": "vercel\\.json|@vercel/node|edge-light" }, { "message": "ncc single-file bundling detected — loading Deployments/CI guidance for deploy --prebuilt and build output optimization.", "pattern": "ncc\\s+build|from\\s+['\"]@vercel/ncc['\"]", "targetSkill": "deployments-cicd", "skipIfFileContains": "vercel\\s+deploy|vercel\\s+build|\\.github/workflows" } ]
- metadata
- { "docs": [ "https://github.com/vercel/ncc" ], "priority": 4, "bashPatterns": [ "\\bnpm\\s+(install|i|add)\\s+[^\\n]*@vercel/ncc\\b", "\\bpnpm\\s+(install|i|add)\\s+[^\\n]*@vercel/ncc\\b", "\\bbun\\s+(install|i|add)\\s+[^\\n]*@vercel/ncc\\b", "\\byarn\\s+add\\s+[^\\n]*@vercel/ncc\\b", "\\bncc\\s+build\\b" ], "pathPatterns": [], "importPatterns": [ "@vercel/ncc" ] }
- retrieval
- { "aliases": [ "node bundler", "single file bundle", "ncc compiler", "node compiler" ], "intents": [ "bundle node module", "compile to single file", "package serverless function", "use ncc" ], "entities": [ "@vercel/ncc", "ncc", "bundle", "single file" ] }
- description
- Expert guidance for @vercel/ncc — a simple CLI for compiling Node.js modules into a single file with all dependencies included. Use when bundling serverless functions, CLI tools, or any Node.js project into a self-contained file.
03 SKILL.md 正文
@vercel/ncc — Node.js Compiler Collection
You are an expert in @vercel/ncc, Vercel's simple CLI for compiling a Node.js module into a single file, together with all its dependencies.
Overview
ncc bundles a Node.js application and all of its node_modules into a single output file. This is ideal for:
- Serverless functions — deploy a single file instead of
node_modules - CLI tools — distribute a self-contained executable
- Docker images — reduce image size by eliminating
node_modules
Installation
npm install -g @vercel/ncc
# Or as a dev dependency
npm install --save-dev @vercel/ncc
Basic Usage
# Compile index.js into dist/index.js
ncc build input.js -o dist/
# Watch mode for development
ncc build input.js -o dist/ -w
# Run directly without writing to disk
ncc run input.js
CLI Options
| Flag | Description |
|---|---|
-o, --out [dir] |
Output directory (default: dist) |
-m, --minify |
Minify the output |
-s, --source-map |
Generate source maps |
-a, --asset-builds |
Build nested JS assets recursively |
-e, --external [mod] |
Keep module as external (don't bundle) |
-w, --watch |
Watch mode — rebuild on changes |
-t, --transpile-only |
Skip TypeScript type checking |
--license [file] |
Output licenses to a file |
-q, --quiet |
Suppress non-error output |
--no-cache |
Skip the build cache |
--no-asset-builds |
Skip nested JS asset builds |
package.json Integration
{
"scripts": {
"build": "ncc build src/index.ts -o dist/ -m",
"build:watch": "ncc build src/index.ts -o dist/ -w",
"start": "node dist/index.js"
},
"devDependencies": {
"@vercel/ncc": "^0.38.0"
}
}
TypeScript Support
ncc natively supports TypeScript — no separate tsc step needed:
# Compiles TypeScript directly
ncc build src/index.ts -o dist/
# Skip type checking for faster builds
ncc build src/index.ts -o dist/ -t
ncc uses the project's tsconfig.json automatically.
Externals
Keep specific modules out of the bundle (useful for native modules or optional dependencies):
# Single external
ncc build input.js -e aws-sdk
# Multiple externals
ncc build input.js -e aws-sdk -e sharp
For serverless environments where the runtime provides certain modules (like AWS Lambda's aws-sdk), mark them as external.
Static Assets
ncc handles non-JS assets (.json, .node, binary files) by copying them to the output directory alongside the compiled JS file. They are referenced correctly at runtime.
Common Patterns
Serverless Function Bundling
# Build a minimal serverless handler
ncc build api/handler.ts -o .output/ -m --no-cache
CLI Tool Distribution
{
"bin": "dist/index.js",
"scripts": {
"prepublishOnly": "ncc build src/index.ts -o dist/ -m"
}
}
GitHub Actions
# Bundle a GitHub Action into a single file
ncc build src/index.ts -o dist/ -m --license licenses.txt
GitHub Actions require all dependencies bundled — ncc is the recommended bundler for custom JS/TS actions.
Key Points
- Single-file output — all dependencies inlined, no
node_modulesneeded at runtime - TypeScript native — compiles
.tsfiles directly using the project'stsconfig.json - No config file — entirely driven by CLI flags
- Asset handling — non-JS files are automatically copied to the output directory
- Use externals for native modules — binary
.nodemodules often need to be external - Source maps for debugging — use
-sflag to generate.js.mapfiles - Watch mode for dev — use
-wfor fast iteration during development
Official Resources
04 同仓库更多 Skills
workflow
Vercel Workflow DevKit (WDK) expert guidance. Use when building durable workflows, long-running tasks, API routes or agents that need pause/resume, retries, step-based execution, or crash-safe orchestration with Vercel Workflow.
verification
Full-story verification — infers what the user is building, then verifies the complete flow end-to-end: browser → API → data → response. Triggers on dev server start and 'why isn't this working' signals.
vercel-storage
Vercel storage expert guidance — Blob, Edge Config, and Marketplace storage (Neon Postgres, Upstash Redis). Use when choosing, configuring, or using data storage with Vercel applications.
vercel-services
Vercel Services — deploy multiple services within a single Vercel project. Use for monorepo layouts or when combining a backend (Python, Go) with a frontend (Next.js, Vite) in one deployment.
vercel-sandbox
Vercel Sandbox guidance — ephemeral Firecracker microVMs for running untrusted code safely. Supports AI agents, code generation, and experimentation. Use when executing user-generated or AI-generated code in isolation.
vercel-queues
Vercel Queues guidance (public beta) — durable event streaming with topics, consumer groups, retries, and delayed delivery. $0.60/1M ops. Powers Workflow DevKit. Use when building async processing, fan-out patterns, or event-driven architectures.