公司業務積累了必定程度,須要搭建本身的組件庫,有了組件庫,整個團隊開發效率會提升恨多。
作組件庫須要提供開發調試環境,和組件文檔的展現,調研了幾個比較主流的方案,以下:vue
monorepo(多包倉庫) react
如今比較流行的是monorepo
(多包倉庫),咱們採用lerna框架去管理開發項目。lerna我認爲最主要的功能給我們提供了包的版本管理,快速發佈npm等。像鼎鼎大名的babel就是採用這種方式來管理。lerna 初始化項目你們能夠看下官方文檔,要注意它的兩種模式
lerna 項目文件目錄描述webpack
├── README.md 項目介紹 ├── lerna.json lerna 配置文件 ├── package.json ├── packages 包目錄 │ └── ***-component 具體包文件 └── yarn.lock
建立componet組件庫git
咱們在packages
文件目錄下建立咱們的組件庫,能夠起名爲 ***-component
, 接下來就是初始化項目,能夠用umi提供的腳手架去建立,根據文檔建立便可。咱們介紹下文件目錄的用途github
框架目錄web
├── bcomponents 存放咱們的業務組件 ├── components 存放基礎組件 │ ├── resource 資源組件 │ └── tag 標籤組件 ├── index.js 入口文件 ├── style 樣式文件 │ ├── index.js │ ├── index.less 入口樣式 │ ├── minxins less minxins │ └── themes 默認主題 ├── utils 工具目錄 │ └── utils.js 工具類
組件目錄npm
├── resource resource組件文件夾 │ ├── index.js 入口文件 │ ├── index.less less描述文件 │ ├── index.mdx 文檔和案例 │ ├── resource.js 組件內容 │ ├── resourceContext.js 組件內容 │ └── resourceGroup.js 組件內容 └── tag tag組件 ├── index.js 入口文件 └── index.mdx 文檔和案例
開發,打包,發佈json
咱們介紹了框架目錄,你們能夠按約定去開發。因爲 umi-plugin-library 目前開發還不是完善,文檔也不是很全。經過查看源碼總結了一下命令,包含開發,打包,發佈到github pages 上.babel
yarn dev
啓動開發環境yarn build:doc
構建文檔yarn deploy:doc
構建文檔併發布到github pagesyarn build
構建組件產物我簡單的介紹了組建搭建,搭建的過程當中還有許多小細節須要咱們注意。我把項目放到了github上,你們有興趣能夠去查看併發