一文看懂 dumi 组件库发包与文档部署全流程!
想把自己的 React 组件库优雅地发到 npm,还能拥有炫酷的在线文档?这篇就是你的终极保姆级教程!
1. dumi 组件库发包全流程
1. 初始化项目(推荐用 dumi 脚手架一键生成)
-
推荐直接用 dumi 官方脚手架快速拉齐项目结构:
bashpnpm create dumi@latest # 或 npm create dumi@latest按提示选择「组件库」模板,自动生成 package.json、dumi 配置、目录结构等,省心省力!
-
如果已有项目,也可以手动安装 dumi 并补充配置:
bashpnpm add dumi -D然后补充 .umirc.ts 或 dumi.config.ts,指定入口、导航、主题等。
2. 编写组件与文档
-
在 src/ 目录下开发你的 React 组件。
-
每个组件旁边写好 index.md,支持 markdown/tsx 混写,dumi 会自动生成文档和 demo。
-
想要在文档中直接展示交互式 demo?只需这样写:
markdown<code src="../react-virtual-list/example/index.tsx"></code>dumi 会自动渲染该 tsx 文件为可交互的 demo 区块,支持代码预览和操作,非常适合组件库文档演示。
-
可以在 docs/ 下写更系统的文档,比如快速上手、API 说明等。
3. 本地预览与调试
bash
pnpm dumi dev
本地启动文档站点,边写边看,体验极佳!
4. 构建产物
bash
pnpm dumi build
会生成 docs-dist/ 目录,里面就是静态文档站点。
5. 组件库打包
-
dumi 官方推荐直接用 father 作为打包工具,生态集成好、配置简单。 一般只需在根目录加一个
.fatherrc.ts配置文件,例如:ts// .fatherrc.ts import { defineConfig } from 'father'; export default defineConfig({ cjs: { output: 'lib' }, esm: { output: 'es' }, // 还可以配置类型输出、打包样式等 });然后执行:
bashpnpm father build即可自动把 src/ 编译到 lib/ 和 es/ 目录。
-
检查 package.json 的 main、module、types 字段,确保指向正确(如 main 指向 lib/index.js,module 指向 es/index.js,types 指向 dist/types/index.d.ts)。
-
用 .npmignore 或 files 字段排除无关内容。
6. 本地测试包
bash
pnpm link
在其他项目里 link 试用,确保没问题。
7. 发布到 npm
-
登录 npm:
bashnpm login -
发布:
bashnpm publish --access public组织包(@scope/xxx)必须加 --access public
-
记得每次发包都要 bump 版本号!
2. dumi 静态文档一键部署到 GitHub Pages
1. 安装 gh-pages
bash
pnpm add gh-pages -D
2. 配置 package.json 脚本
json
"scripts": {
"docs:build": "dumi build",
"docs:deploy": "gh-pages -d docs-dist"
}
3. 一键部署
bash
pnpm run docs:build
pnpm run docs:deploy
gh-pages 会自动把 docs-dist/ 推到 gh-pages 分支。
4. GitHub 仓库设置
在仓库 Settings → Pages,选择 gh-pages 分支作为 Pages 源,几分钟后就能在线访问你的文档啦!
3. 一图胜千言:全流程速查
- 组件开发 & 文档撰写
- 本地预览 & 构建
- 组件打包 & npm 发布
- 文档构建 & gh-pages 部署
- 检查线上 npm 包和文档站点
只要跟着本文流程走,dumi 组件库发包和文档部署再也不迷路!有问题欢迎评论区交流~

