dumi

隨著業(yè)務(wù)的擴(kuò)展和公司品牌的重視碴裙,我們會(huì)發(fā)現(xiàn)越來(lái)越多的業(yè)務(wù)需要重新整合薇芝,這時(shí)候需要我們提供一些底層的能力來(lái)支撐未來(lái)更復(fù)雜的設(shè)計(jì),和優(yōu)化我們的產(chǎn)研結(jié)構(gòu)跪但、工作方向。

打造底層能力重要的一項(xiàng)就是組件庫(kù)的搭建峦萎,如果我們業(yè)務(wù)多元化特漩,每一個(gè)方向都需要一個(gè)項(xiàng)目來(lái)承接吧雹,我們需要重復(fù)配置初始化不同的項(xiàng)目,這顯然會(huì)額外增加不少的開發(fā)時(shí)間涂身,為節(jié)省成本我們可能會(huì)想到有沒有一個(gè)開箱即用的庫(kù)可以解決這一系列的問(wèn)題雄卷?

答案無(wú)疑是肯定的,這件事情也有人早就想到了蛤售。

下面丁鹉,我們來(lái)一起關(guān)注下,究竟是什么庫(kù)可以解決我們的這個(gè)問(wèn)題:

dumi

什么是 dumi悴能?

dumi 是基于 Umi 打造揣钦、為組件開發(fā)場(chǎng)景而生的文檔工具。

也就是說(shuō)漠酿,dumi 是可以用來(lái)寫文檔冯凹、官網(wǎng)和組件庫(kù) Demo 的 Umi

有什么功能呢炒嘲?

  • 可以與 umi 項(xiàng)目集成

  • 豐富的文檔編寫語(yǔ)法

  • 約定式路由

  • 移動(dòng)端組件 demo 示例

  • 可自定義主題

dumi 是怎么使用的呢宇姚?

初始化
  • 首先需要有 node,且 node 版本是 10.13 或以上夫凸。

  • 其次新建文件夾浑劳,用來(lái)安裝 dumi

mkdir myapp && cd myapp
安裝
  • 現(xiàn)在夭拌,我們來(lái)初始化一個(gè)文檔模式的組件庫(kù)開發(fā)腳手架:
npx @umijs/create-dumi-lib     

或者使用 yarn

yarn create @umijs/dumi-lib
  • 我們?cè)賮?lái)嘗試初始化一個(gè)站點(diǎn)模式的組件庫(kù)開發(fā)腳手架:
npx @umijs/create-dumi-lib --site 

或者使用 yarn

yarn create @umijs/dumi-lib --site
  • 我們也可以初始化一個(gè)靜態(tài)站點(diǎn)的腳手架魔熏,即一個(gè)多語(yǔ)言的站點(diǎn)模式腳手架,僅包含文檔鸽扁。
npx @umijs/create-dumi-app

或者使用 yarn

yarn create @umijs/dumi-app
調(diào)試及構(gòu)建
  • 我們可以使用如下命令開始調(diào)試組件或編寫文檔:
npm run dev 或 npx dumi dev
  • 最后使用如下命令構(gòu)建及部署:
npm run build 或 npx dumi build

構(gòu)建默認(rèn)會(huì)輸出到 dist 目錄下蒜绽,我們可以將 dist 目錄部署在 now.sh、GitHub Pages 等靜態(tài)站點(diǎn)托管平臺(tái)或者某臺(tái)服務(wù)器上桶现。

現(xiàn)在我們搭建一個(gè)組件項(xiàng)目看看吧

使用命令創(chuàng)建可以發(fā)現(xiàn)如下:

初始化項(xiàng)目

從上述圖片中滓窍,我們可以發(fā)現(xiàn)項(xiàng)目中已經(jīng)包含了測(cè)試文件,從此巩那,我們可以快樂(lè)地開發(fā)組件和 UT 了吏夯。

注意:目前文檔只支持 md 格式。

安裝好依賴運(yùn)行下項(xiàng)目:

運(yùn)行項(xiàng)目

現(xiàn)在我們已經(jīng)可以正常的調(diào)試了即横。

我們?cè)?src 目錄下新建個(gè)文件夾 test 及內(nèi)部含有 3 個(gè)文件噪生,分別是:index.md、index.test.tsx东囚、index.tsx跺嗽。

新建文件夾 test

現(xiàn)在已經(jīng)建好了文件,我們還需要在入口文件 index.tsx 導(dǎo)出新建的文件。

導(dǎo)出新建文件

我們運(yùn)行下項(xiàng)目:

運(yùn)行項(xiàng)目

當(dāng)我們有需求想展示源代碼的時(shí)候桨嫁,可以使用 pure 修飾符告訴 dumi

```tsx | pure
import React from 'react';
import { Test } from 'dumi-app';

export default () => <Test title="First Demo" />;

如果示例代碼有很多寫在這里也會(huì)很不方便植兰,這時(shí)我們可以引入外部文件:

<code src="/src/demo.tsx"></code>

如果我們需要定位,也請(qǐng)放心使用璃吧,我們不會(huì)飛出去楣导,只需設(shè)置 transformtrue

```tsx | transform
import React from 'react';

export default () => <h1 style={{ position: 'fixed', top: 0, left: 0 }}>我不會(huì)飛出去</h1>;
fixed 定位

如果想嵌入到文檔,可以使用 inline

```jsx
/**
 * inline: true
 */

import React from 'react';

export default () => '我會(huì)被直接嵌入';
嵌入文檔

如果需要以 iframe 的形式展示的話畜挨,可以設(shè)置 iframetrue

```jsx | iframe
import React from 'react';

export default () => (
  <h2 style={{ boxShadow: '0 2px 15px rgba(0,0,0,0.1)', padding: '5px 20px' }}>iframe 模式</h2>
);
iframe 模式

當(dāng)然筒繁,我們也可以使用系統(tǒng)內(nèi)置的組件:

<Alert type="info">
  哈哈,我是一個(gè) Alert
</Alert>

標(biāo)簽測(cè)試 <Badge>Hello</Badge>
內(nèi)置組件

我們?cè)賴L試 build 下組件:

構(gòu)建

項(xiàng)目中會(huì)多一個(gè) es 文件夾:

項(xiàng)目結(jié)構(gòu)

最后巴元,我們 build 下文檔:

文檔

此時(shí)的目錄結(jié)構(gòu)會(huì)多了個(gè) docs-dist 文件夾:

項(xiàng)目結(jié)構(gòu)

總結(jié):現(xiàn)在我們可以使用 dumi 開發(fā)組件庫(kù)和編寫文檔了毡咏,而且無(wú)需配置,只需要快樂(lè)地編寫代碼逮刨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呕缭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子修己,更是在濱河造成了極大的恐慌恢总,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箩退,死亡現(xiàn)場(chǎng)離奇詭異离熏,居然都是意外死亡佳谦,警方通過(guò)查閱死者的電腦和手機(jī)戴涝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钻蔑,“玉大人啥刻,你說(shuō)我怎么就攤上這事∵湫Γ” “怎么了可帽?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)窗怒。 經(jīng)常有香客問(wèn)我映跟,道長(zhǎng),這世上最難降的妖魔是什么扬虚? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任努隙,我火速辦了婚禮,結(jié)果婚禮上辜昵,老公的妹妹穿的比我還像新娘荸镊。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布躬存。 她就那樣靜靜地躺著张惹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岭洲。 梳的紋絲不亂的頭發(fā)上宛逗,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音钦椭,去河邊找鬼拧额。 笑死,一個(gè)胖子當(dāng)著我的面吹牛彪腔,可吹牛的內(nèi)容都是我干的侥锦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼德挣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恭垦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起格嗅,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤番挺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屯掖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玄柏,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年贴铜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粪摘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绍坝,死狀恐怖徘意,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情轩褐,我是刑警寧澤椎咧,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站把介,受9級(jí)特大地震影響勤讽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拗踢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一脚牍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秒拔,春花似錦莫矗、人聲如沸飒硅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)三娩。三九已至,卻和暖如春妹懒,著一層夾襖步出監(jiān)牢的瞬間雀监,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工眨唬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留会前,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓匾竿,卻偏偏與公主長(zhǎng)得像瓦宜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岭妖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容