unbuild的github地址: github.com/unjs/unbuil…
开发 create-vite 的时候用到了
"scripts": {
"dev": "unbuild --stub",
"build": "unbuild",
},
"devDependencies": {
"unbuild": "^3.5.0"
}
底层实现主要依赖于以下几个工具:
- esbuild:
- 用于 TypeScript 编译
- 提供快速的构建性能
- 处理代码转换和优化
- Rollup:
- 用于打包和模块处理
- 处理依赖关系
- 生成最终的构建输出
- TypeScript 编译器 API:
- 用于生成类型声明文件(.d.ts)
- 提供类型检查功能
当执行 unbuild --stub 时,主要执行以下步骤:
- 类型声明生成:
// 使用 TypeScript 编译器 API
- 读取 TypeScript 源码
- 生成类型声明文件
- 不进行实际的代码编译
- 源码映射:
// 生成源码映射
- 保持源码结构
- 创建源码映射文件
- 方便调试
- 配置处理
// 处理构建配置
- 读取 build.config.ts
- 应用构建选项
- 设置输出目录
- 依赖处理
// 处理项目依赖
- 分析依赖关系
- 处理外部依赖
- 优化依赖导入
- 输出生成
// 生成输出文件
- 创建 dist 目录
- 生成类型声明文件
- 保持源码结构
主要特点:
- 快速开发:
- 只生成类型声明
- 不进行代码编译
- 加快开发迭代
- 类型安全:
- 完整的类型检查
- 类型声明文件生成
- 开发时类型提示
- 源码映射:
- 保持源码可读性
- 方便调试
- 支持源码映射
- 构建优化:
- 使用 esbuild 加速
- 智能依赖处理
- 优化的构建流程
这就是为什么 unbuild --stub 在开发环境中特别有用,它提供了:
- 快速的开发体验
- 完整的类型支持
- 方便的调试能力
- 高效的构建过程