构建模式
robuild 支持两种构建模式:Bundle 模式和 Transform 模式。
Bundle 模式
将多个文件打包成单个文件,适合库发布。
基本用法
sh
robuild ./src/index.ts配置示例
ts
import { defineConfig } from 'robuild'
export default defineConfig({
entries: [
{
type: 'bundle',
input: './src/index.ts',
format: ['esm', 'cjs'],
dts: true,
minify: true,
},
],
})输出结构
dist/
├── index.mjs # ESM 格式
├── index.cjs # CJS 格式
├── index.d.mts # 类型声明
└── _chunks/ # 代码分割文件特点
- 单文件输出
- 支持代码分割
- 自动处理外部依赖
- 生成类型声明
Transform 模式
转换目录中的所有文件,保持文件结构,适合运行时文件。
基本用法
sh
robuild ./src/runtime/:./dist/runtime配置示例
ts
import { defineConfig } from 'robuild'
export default defineConfig({
entries: [
{
type: 'transform',
input: './src/runtime',
outDir: './dist/runtime',
},
],
})输出结构
dist/runtime/
├── index.mjs # 转换后的文件
├── index.d.mts # 类型声明
├── utils.mjs
└── utils.d.mts特点
- 保持目录结构
- 文件级转换
- 构建速度快
模式对比
| 特性 | Bundle 模式 | Transform 模式 |
|---|---|---|
| 输出 | 单文件 | 多文件 |
| 结构 | 扁平化 | 保持原结构 |
| 依赖 | 打包/外部化 | 重写路径 |
| 代码分割 | 支持 | 不支持 |
| 适用 | 库发布 | 运行时文件 |
混合使用
ts
import { defineConfig } from 'robuild'
export default defineConfig({
entries: [
// 主库 - Bundle
{
type: 'bundle',
input: './src/index.ts',
dts: true,
},
// 运行时 - Transform
{
type: 'transform',
input: './src/runtime',
outDir: './dist/runtime',
},
],
})下一步
- Stub 模式 - 开发模式
- TypeScript 支持 - 类型声明生成
- ESM 兼容性 - 模块格式
