摘要:相信不少使用的開發(fā)者和公司都有定制一套屬于自己的組件庫的需求。針對這個問題,我搭建了一個專門用來構建的組件庫的開發(fā)框架,以節(jié)省搭建環(huán)境的勞動力,專心于組件庫的開發(fā)。首先我們嘗試了使用的方案,就是把組件庫直接作為項目的子模塊使用。
相信不少使用Vue的開發(fā)者和公司都有定制一套屬于自己的UI組件庫的需求。但是要開發(fā)、測試、打包、發(fā)布這個組件庫,卻需要耗費較大的勞動力去搭建一整套的環(huán)境。針對這個問題,我搭建了一個專門用來構建Vue的UI組件庫的開發(fā)框架,以節(jié)省搭建環(huán)境的勞動力,專心于組件庫的開發(fā)。
一、介紹項目地址:https://github.com/jrainlau/v...
Vue-Donut是一個開發(fā)框架,配合vue-cli使用。所以首先保證全局安裝有vue-cli。接下來就可以初始化我們的項目了:
vue init jrainlau/vue-donut <項目名>
類似官方的vuejs-templates/webpack模板,Vue-Donut也允許用戶進行一些配置。在配置完成后則會生成你的組件庫目錄。值得注意的是,這個組件庫最終發(fā)布的名字也是你所自定義的項目名(當然這些都是可以修改的)。
接下來按照提示,進入項目目錄后,通過yarn命令下載所需依賴包即可開始使用。
目錄結構如下:
. ├── index.html ├── package.json ├── src │?? ├── app.vue │?? ├── assets │?? │?? └── donut.jpg │?? ├── components │?? │?? ├── content.vue │?? │?? ├── header.vue │?? │?? ├── index.js │?? │?? ├── link.vue │?? │?? └── title.vue │?? └── main.js └── webapck ├── build.js ├── dev.js ├── doc.js ├── webpack.base.config.js ├── webpack.build.config.js ├── webpack.dev.config.js └── webpack.doc.config.js二、命令
yarn run dev:開發(fā)模式
通過webpack-dev-server開啟一個測試服務器,就和官方的vuejs-templates/webpack模板里面的一樣。
yarn run build:打包及發(fā)布模式
這個命令會以src/components/index.js為入口文件,通過webpack構建后產(chǎn)出到dist目錄。
dist/index.js就是你接下來將會發(fā)布到npm上面的包。
你應該熟練掌握如何編寫vue的插件
src/components/index.js入口文件應該長成下面這個樣子:
import myComponent from "./my-component.vue" const install = (Vue) => { Vue.component("my-componen", myComponent) } export default install
yarn run build:文檔模式
通過運行yarn run dev,你所開發(fā)的就像是一個普通的單頁應用,這也類似于組件庫的官方文檔頁面。當開發(fā)完成后,你可以通過這條命令打包你的應用。app.[hash].js, vendor.[hash].js和manifest.[hash].js,以及獨立的css文件都會被打包到docs文件夾。
source map *.[hash].map會被自動生成。
可以方便地直接使用docs目錄作為github pages的資源目錄。
三、注意事項Vue-Donut默認使用less作為預處理器,如果需要用其他預處理器,可以自定義配置。
測試同理。
四、證書MIT
一些碎碎念在工作的過程中,遇到了搭建UI組件庫的需求。開發(fā)不難,麻煩的是如何在項目中引入使用。首先我們嘗試了使用git的submodule方案,就是把UI組件庫直接作為項目的子模塊使用。另外一種方式,是把整個組件庫發(fā)布到npm,然后在webpack.module.rules的exclude里面通過正則或者函數(shù)的方式,使用項目的webpack配置去跑組件庫的代碼。這兩種方式都不那么優(yōu)雅,思考再三,最后決定搭個更加方便優(yōu)雅的開發(fā)框架來。
在此之前,對于webpack的使用及配置僅處于“看得懂”的程度,但從未真正從頭開始搭過。在搭建的過程中也遇到了不少坑,但通過查閱官方文檔大都能獲得解決辦法,實在不行還有萬能的google和stackoverflow。搭的過程中也參考了很多優(yōu)秀的實踐,比如公司前輩的搭建方式,以及vue-cli官方出品的搭建方式等,搭完后對webpack的掌握也得到了極大的提升。
希望這個作品能夠發(fā)揮能效,也歡迎提出問題和建議和我交流~
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/82864.html
摘要:由進行開發(fā)和維護,代發(fā)布于年月,現(xiàn)在主要是。狀態(tài)是只讀的,只能通過來改變,以避免競爭條件這也有助于調(diào)試。文件大小為,而為,為。請記住,性能基準只能作為考慮的附注,而不是作為判斷標準。使用的人員報告說,他們永遠不必閱讀庫的源代碼。 本文當時寫在本地,發(fā)現(xiàn)換電腦很不是方便,在這里記錄下。 angular,react & vue 2018/07/23 2016年,對于JavaScript來說...
摘要:專有的內(nèi)容更少,而更多符合標準的成分。當前標簽實例的方法被調(diào)用時當前標簽的任何一個祖先的被調(diào)用時更新從父親到兒子單向傳播。相對來說,微型場景會更適合,不想要太多的外部依賴,又需要組件化數(shù)據(jù)驅(qū)動等更現(xiàn)代化框架的能力。 Riot.js是什么? Riot 擁有創(chuàng)建現(xiàn)代客戶端應用的所有必需的成分: 響應式 視圖層用來創(chuàng)建用戶界面 用來在各獨立模塊之間進行通信的事件庫 用來管理URL和瀏覽器回...
摘要:專有的內(nèi)容更少,而更多符合標準的成分。當前標簽實例的方法被調(diào)用時當前標簽的任何一個祖先的被調(diào)用時更新從父親到兒子單向傳播。相對來說,微型場景會更適合,不想要太多的外部依賴,又需要組件化數(shù)據(jù)驅(qū)動等更現(xiàn)代化框架的能力。 Riot.js是什么? Riot 擁有創(chuàng)建現(xiàn)代客戶端應用的所有必需的成分: 響應式 視圖層用來創(chuàng)建用戶界面 用來在各獨立模塊之間進行通信的事件庫 用來管理URL和瀏覽器回...
摘要:使用基于依賴追蹤的觀察并且使用異步隊列更新。為項目配置文件。為項目靜態(tài)資源目錄。其實個人感覺通用項目目錄可以很隨意的搭配,比如說之后清空目錄封裝通用組件,像是啊,滑動常用組件。 寫在前面的個人體會,大神們可以跳過 這段時間接手一個后臺管理項目,從最開始寫一點我自己的體會吧。首先Vue,Angular和React是當今主流前端三大框架。Vue是一個用來構建網(wǎng)頁的JS庫,相比較Angula...
閱讀 2942·2021-11-24 09:39
閱讀 1197·2021-11-02 14:38
閱讀 4214·2021-09-10 11:26
閱讀 2785·2021-08-25 09:40
閱讀 2341·2019-08-30 15:54
閱讀 507·2019-08-30 10:56
閱讀 2799·2019-08-26 12:14
閱讀 3246·2019-08-26 12:13