@vercel/ncc 仓库文档

项目简介

@vercel/ncc 是一个零配置的 Node.js 模块编译器,能将一个 Node.js 模块及其所有依赖打包成单个文件,类似于 GCC 的编译体验。它基于 Webpack 构建,内置 TypeScript 支持,专注于 Node.js 程序的输入/输出。

核心设计目标

  • 零配置:无需额外的 bundler 配置即可使用
  • TypeScript 内置支持:直接指向 .ts/.tsx 文件即可编译
  • 仅支持 Node.js 程序作为输入/输出
  • 支持所有 Node.js 模式和 npm 模块

文档导航

架构与设计

页面说明
仓库结构总览顶层目录和文件组织
架构概览核心架构、数据流和设计决策
Webpack 配置与打包流程Webpack 配置生成与编译流水线
输出处理流程编译后的代码后处理流程

核心模块

页面说明
CLI 模块命令行接口实现
核心编译引擎src/index.js - 主编译逻辑
Loader 系统Webpack Loader 集合详解
TypeScript 集成TypeScript 编译与版本解析
工具模块辅助工具函数

开发指南

页面说明
本地开发环境搭建环境搭建与依赖安装
构建系统自举构建流程
测试体系测试框架、集成测试和 CLI 测试
CI/CD 与发布GitHub Actions 工作流与 semantic-release

参考资料

页面说明
配置选项参考所有 CLI 和 API 选项详解
外部依赖与包支持externals 机制与常见包适配
维护者手册常见修改场景与注意事项
术语表项目专有术语和概念

推荐阅读顺序

  1. 仓库结构总览 — 了解项目布局
  2. 架构概览 — 理解核心设计
  3. 核心编译引擎 — 深入主逻辑
  4. Loader 系统 — 了解各 loader 的职责
  5. 构建系统 — 理解自举过程
  6. 测试体系 — 学习如何验证修改