这次自己来试试搭个玩玩。官网文档挺仔细的了,我们这就速度过一遍。
什么是 dumi?
dumi,中文发音嘟米,是一款为组件开发场景而生的文档工具,与 father 一起为开发者提供一站式的组件开发体验,father 负责构建,而 dumi 负责组件开发及组件文档生成。
特性
- 📦 开箱即用,将注意力集中在组件开发和文档编写上
- 📋 丰富的 Markdown 扩展,不止于渲染组件 demo
- 🏷 基于 TypeScript 类型定义,自动生成组件 API
- 🎨 主题轻松自定义,还可创建自己的 Markdown 组件
- 📱 支持移动端组件库研发,内置移动端高清渲染方案
- 📡 一行命令将组件资产数据化,与下游生产力工具串联
环境准备
node版本要求是10.13 或以上
脚手架的选择
有2种,一种是组件开发脚手架另一种是静态站点脚手架
组件开发脚手架
组件开发脚手架又分文档模式和站点模式
文档模式如下
站点模式如下
我们选择站点模式
1 | npx @umijs/create-dumi-lib --site |
1 | npm install |
运行项目
进入.umirc.ts文件改一些配置,具体配置官网也很详细
1 | export default defineConfig({ |
还有docs => index.md可以更改主页相关信息以及配置。
准备开发
先来看下目录结构
直接开始吧,随便写2个组件
dumi采用的是约定式路由,所以大多数情况下,我们不需要配置路由。
创建components文件夹放组件 => PText => index.tsx和index.md
需要在src => index.ts导出组件
1 | export { default as PText } from './components/PText'; |
1 | index.tsx |
index.md
关于md导航
1 | --- |
效果如下
然后自己可以写更多的组件或者其他.
打包
站点模式打包指令npm run docs:build,打包成dist上传至自己的gitee仓库,直接
最后访问线上的地址,效果如下。有了dumi我们不仅限于文档,可以在更多的场景下使用它.
- 在线预览
我的微信公众号: 梨的前端小屋