美文网首页
使用dumi开发组件库(scss,默认语言,路由)

使用dumi开发组件库(scss,默认语言,路由)

作者: mudssky | 来源:发表于2022-05-25 16:37 被阅读0次

dumi是一款react 组件库开发场景的文档工具。是阿里开源的工具链。

其实文档工具还有一些其他选择,比如docz,storybook。

能直接对比的是storybook。storybook和dumi一样是用于组件库开发的文档工具,github上有71.1k的star。而dumi有2.3k的star,可见总体上storybook的使用人数应该比dumi多很多。而且storybook推出的时间也比dumi早很多。

storybook支持 vue,react,augular,而dumi目前只支持了react。

不过dumi也有优势,就是用起来更简单。开箱即用。默认生成的文档就很不错了。可以写出类似antd那种文档。storybook配置起来就花里胡哨了。

安装

建一个git仓库,执行下面的代码创建脚手架。

$ npx @umijs/create-dumi-lib --site # 初始化一个站点模式的组件库开发脚手架
# or
$ yarn create @umijs/dumi-lib --site

然后我们执行 yarn 安装依赖

切换默认语言为中文

公司内部的文档,并没有外国人会看,所以默认语言切换为中文比较合适。

根目录找到.umirc.ts文件

添加下面的配置

  locales: [
    ['zh-CN', '中文'],
    ['en-US', 'English'],
  ],

初始的默认语言为英文。想要添加其他语言的文档,只要创建类似这样命名的markdown文档就行了index.zh-CN.md

index.md的markdown文档会被作为默认语言的文档,所以只要在配置里面切换默认语言为中文,那么以后添加英文版的时候,创建index.en-Us.md这种文档就可以了。

添加scss支持

dumi默认的css预处理器是less。

我还是习惯用scss,dumi是基于umijs的库,

我们只要安装这个umijs的插件即可@umijs/plugin-sass

yarn add @umijs/plugin-sass --dev

然后我们在typings.d里面加上下面一行,不然引入scss的module的时候vscode会报错。

declare module '*.scss';

这个插件默认用的是dart sass

也可以切换为node-sass,需要先安装'node-sass'依赖,然后配置(不过其实没什么必要,dart的性能更好,sass官方推荐的也是dart)

export default {
  sass: {
    implementation: require('node-sass'),
  },
}

还要注意的一点是 build的默认配置是不支持 sass的 https://github.com/umijs/father

所以我们要修改这个.fatherrc.ts的配置,esm改成rollup模式

export default {
  esm: 'rollup',
  sassInRollupMode: {},
}

关于dumi的路由

dumi支持约定式路由。

src目录下面的第一层目录就会被当成顶部导航栏的项目名,第二层目录以后则是在左侧的目录体现。

因为项目的文件夹我们肯定都是字母,所以是不符合文档的需求的。

可以通过在markdown顶部的frontmatter进行配置。

nav这边的title是顶部导航栏的title

group则是左侧目录的分组

---
title: 自定义页面名称
nav:
  path: /自定义导航路由
  title: 自定义导航名称
  order: 控制导航顺序,数字越小越靠前,默认以路径长度和字典序排序
group:
  path: /自定义分组路由,注意,分组路由 = 导航路由 + 自己
  title: 自定义分组名称
  order: 控制分组顺序,数字越小越靠前,默认以路径长度和字典序排序
---

<!-- 其他 Markdown 内容 -->

我们开发的时候,在src目录下建一个components目录(默认导航栏里就会有一项components),然后在里面建各个组件的目录就比较合适。

相关文章

网友评论

      本文标题:使用dumi开发组件库(scss,默认语言,路由)

      本文链接:https://www.haomeiwen.com/subject/acaeprtx.html