AGENT SKILL

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

  1. Single-file output — all dependencies inlined, no node_modules needed at runtime
  2. TypeScript native — compiles .ts files directly using the project's tsconfig.json
  3. No config file — entirely driven by CLI flags
  4. Asset handling — non-JS files are automatically copied to the output directory
  5. Use externals for native modules — binary .node modules often need to be external
  6. Source maps for debugging — use -s flag to generate .js.map files
  7. Watch mode for dev — use -w for fast iteration during development

Official Resources

04 同仓库更多 Skills

NagyVikt
NagyVikt/codex-plugins

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.

开发工程师人力资源后端与接口Skill与智能体开发
★ 2
NagyVikt
NagyVikt/codex-plugins

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.

产品经理数据分析师测试与质量后端与接口
★ 2
NagyVikt
NagyVikt/codex-plugins

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.

后端与接口
★ 2
NagyVikt
NagyVikt/codex-plugins

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.

前端开发后端与接口
★ 2
NagyVikt
NagyVikt/codex-plugins

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.

★ 2
NagyVikt
NagyVikt/codex-plugins

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.

Skill与智能体开发
★ 2