一文看懂 dumi 组件库发包与文档部署全流程!

一文看懂 dumi 组件库发包与文档部署全流程!

想把自己的 React 组件库优雅地发到 npm,还能拥有炫酷的在线文档?这篇就是你的终极保姆级教程!


1. dumi 组件库发包全流程

1. 初始化项目(推荐用 dumi 脚手架一键生成)

  1. 推荐直接用 dumi 官方脚手架快速拉齐项目结构:

    bash 复制代码
    pnpm create dumi@latest
    # 或
    npm create dumi@latest

    按提示选择「组件库」模板,自动生成 package.json、dumi 配置、目录结构等,省心省力!

  2. 如果已有项目,也可以手动安装 dumi 并补充配置:

    bash 复制代码
    pnpm add dumi -D

    然后补充 .umirc.ts 或 dumi.config.ts,指定入口、导航、主题等。

2. 编写组件与文档

  1. 在 src/ 目录下开发你的 React 组件。

  2. 每个组件旁边写好 index.md,支持 markdown/tsx 混写,dumi 会自动生成文档和 demo。

  3. 想要在文档中直接展示交互式 demo?只需这样写:

    markdown 复制代码
    <code src="../react-virtual-list/example/index.tsx"></code>

    dumi 会自动渲染该 tsx 文件为可交互的 demo 区块,支持代码预览和操作,非常适合组件库文档演示。

  4. 可以在 docs/ 下写更系统的文档,比如快速上手、API 说明等。

3. 本地预览与调试

bash 复制代码
pnpm dumi dev

本地启动文档站点,边写边看,体验极佳!

4. 构建产物

bash 复制代码
pnpm dumi build

会生成 docs-dist/ 目录,里面就是静态文档站点。

5. 组件库打包

  1. dumi 官方推荐直接用 father 作为打包工具,生态集成好、配置简单。 一般只需在根目录加一个 .fatherrc.ts 配置文件,例如:

    ts 复制代码
    // .fatherrc.ts
    import { defineConfig } from 'father';
    export default defineConfig({
        cjs: { output: 'lib' },
        esm: { output: 'es' },
        // 还可以配置类型输出、打包样式等
    });

    然后执行:

    bash 复制代码
    pnpm father build

    即可自动把 src/ 编译到 lib/ 和 es/ 目录。

  2. 检查 package.json 的 main、module、types 字段,确保指向正确(如 main 指向 lib/index.js,module 指向 es/index.js,types 指向 dist/types/index.d.ts)。

  3. 用 .npmignore 或 files 字段排除无关内容。

6. 本地测试包

bash 复制代码
pnpm link

在其他项目里 link 试用,确保没问题。

7. 发布到 npm

  1. 登录 npm:

    bash 复制代码
    npm login
  2. 发布:

    bash 复制代码
    npm publish --access public

    组织包(@scope/xxx)必须加 --access public

  3. 记得每次发包都要 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. 一图胜千言:全流程速查

  1. 组件开发 & 文档撰写
  2. 本地预览 & 构建
  3. 组件打包 & npm 发布
  4. 文档构建 & gh-pages 部署
  5. 检查线上 npm 包和文档站点

只要跟着本文流程走,dumi 组件库发包和文档部署再也不迷路!有问题欢迎评论区交流~

比如这个 React 虚拟列表包,欢迎体验:

相关推荐
云水一下14 分钟前
Vue.js从零到精通系列(三):组件化基础——Props、Emits、插槽与生命周期
前端·javascript·vue.js
SEO_juper41 分钟前
新独立站冷启动收录全攻略:配置、推送、抓取配额优化完整手册
前端·谷歌·seo·跨境电商·外贸·geo·独立站
TinssonTai1 小时前
这个 VS Code 插件让我的 AI Coding 又快又稳 - 旧瓶装新酒
前端·人工智能·程序员
体验家1 小时前
体验家 XMPlus 网页端问卷 SDK 技术解析:用几行 JavaScript 实现精准场景触发与防打扰机制
开发语言·前端·javascript
Maimai108081 小时前
Web3 前端交易系统如何落地:从下单 UI 到 Operation 编码、签名与实时状态更新
前端·react.js·ui·架构·前端框架·web3
kidding7231 小时前
高效备忘清单工具类小程序
前端·计算机网络·微信小程序·小程序
IMPYLH1 小时前
HTML 的 <abbr> 元素
前端·算法·html
李白的天不白2 小时前
Tree-Shaking
前端
Csvn2 小时前
TypeScript:你以为安全的 `JSON.parse` 其实是颗雷 — 运行时类型安全实战
前端·javascript
橘子星2 小时前
深入理解线性数据结构:栈、队列与链表
前端·javascript