Skip to content

参考

版本基线 rolldown 1.1.x(2026-06)。CLI、核心选项、transform 子选项、插件钩子差异与版本现状速查。

CLI 速查

bash
npx rolldown src/main.ts --file bundle.js     # 单文件输出
npx rolldown src/main.ts -d dist              # 目录输出
npx rolldown src/main.ts -d dist --format cjs # 指定输出格式
npx rolldown src/main.ts -d dist --minify     # 压缩(Oxc minifier)
npx rolldown -c                               # 读 rolldown.config.js
npx rolldown -c rolldown.prod.ts -w           # 指定配置 + watch
npx rolldown --version                        # 验证安装

核心输入选项(InputOptions)

选项说明
input入口:字符串 / 数组 / { name: path } 对象
platform'browser' | 'node' | 'neutral';cjs 输出默认 node,其余默认 browser
resolve解析配置(alias、conditionNames、extensions…),oxc-resolver 驱动
tsconfig指定 tsconfig.json,启用 compilerOptions.paths 与相关编译选项
transform内置转换配置:target/jsx/define/inject…(见下表)
external外部化依赖:字符串 / 正则 / 函数
treeshake摇树开关与精细配置
plugins插件数组(Rollup 兼容对象 + builtin 插件)
moduleTypes⚗️ 实验:扩展名 → 内置模块类型(esbuild loader 式)
experimental⚗️ 实验特性开关(如 lazyBarrel

核心输出选项(OutputOptions)

选项说明
dir / file输出目录 / 单文件(二选一)
format'esm' | 'cjs' | 'iife' | 'umd'默认恒为 esm
minify内置 Oxc minifier,true 一键压缩
sourcemaptrue | 'inline' | 'hidden'
codeSplitting手动分包(splitChunks 式 groups);manualChunks 已废弃
entryFileNames / chunkFileNames / assetFileNames产物命名模板
banner / footer / intro / outro产物头尾注入
name / globals / extendiife/umd 场景:全局变量名与外部依赖映射
preserveModules不打包合并、按模块原样输出(库场景)
keepNames / exports / esModule标识符保留 / 导出模式 / 互操作标记

transform 子选项速查

子选项说明
target语法降级目标:'es2015'~esnext 或 ['es2020','chrome58','node12']默认 esnext 不转换,最低 ES2015,不注入 polyfill
jsxfalse(遇 JSX 报错)|'react'(classic)|'react-jsx'(automatic)|'preserve'(原样)|JsxOptions
define全局标识符/属性访问器 → 常量表达式,如 'process.env.NODE_ENV': "'production'"(注意内层引号)
inject按需注入 import shim 全局变量,API 对齐 @rollup/plugin-inject
dropLabels移除指定标签语句,如 ['DEBUG']
decorator装饰器(含 legacy)支持
typescriptTS 转换细节配置
assumptions编译假设,换更小产物

插件钩子兼容性速查

支持的核心钩子(与 Rollup 一致):optionsbuildStartresolveIdloadtransformmoduleParsedbuildEndrenderStartrenderChunkaugmentChunkHashgenerateBundlewriteBundlecloseBundlewatchChangecloseWatcher…均可配 hook filter

差异点RolldownRollup
outputOptions 时机build 钩子之前build 钩子之后
多 output 的 build 钩子每个 output 各跑一遍全部输出共跑一次
closeBundle 触发需 generate()/write() 至少一次无条件触发
watch 的 options仅 watcher 初始化时一次每次重建都调用
writeBundle 并发默认顺序执行默认并行
不支持的钩子shouldTransformCachedModuleresolveImportMetaresolveFileUrlrenderDynamicImport

内置插件(Rust 实现)

插件用途
builtin:replace构建期文本替换;对比 @rollup/plugin-replace仅静态值、无 include/exclude
builtin:bundle-analyzer产物体积与构成分析
builtin:esm-external-requireESM 输出中处理外部 require

版本现状(2026-06)

版本说明
rolldown1.1.x(latest)1.0.0-rc.1 = 2026-01-22;1.0.0 stable = 2026-05-07;语义化版本承诺生效
vite8.0.x2026-03-12 起 Rolldown 为默认/唯一打包器
rolldown-vite7.x历史过渡 fork,Vite 8 后完成使命
tsdown0.22.x官方库打包工具(tsup 接班人),尚未 1.0

1.0 承诺范围:选项名/类型、插件钩子签名向后兼容,公共 API 无计划内破坏性变更;experimental.* 不在承诺内。