您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)JavaScript插件化框架MinimaJS的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
JavaScript編寫(xiě)的插件化框架——MinimaJS,完全開(kāi)源,源碼下載地址:https://github.com/lorry2018/minimajs。該框架參考OSGi規(guī)范,將該規(guī)范定義的三大插件化功能在Node上實(shí)現(xiàn)了。MinimaJS三個(gè)功能:動(dòng)態(tài)插件化,服務(wù)和擴(kuò)展。該框架基于VSCode開(kāi)發(fā)、使用ES6編碼,基于Node 8開(kāi)發(fā),代碼量幾千行,非常的簡(jiǎn)單、優(yōu)雅、輕量??蚣艿拇a結(jié)構(gòu)劃分清晰,命名優(yōu)雅。
我們先簡(jiǎn)單看一下,如何來(lái)使用這個(gè)框架。
通過(guò)這幾行代碼就可以創(chuàng)建一個(gè)插件框架,并且從當(dāng)前的plugins目錄下加載插件。
每一個(gè)插件在plugins目錄下,由plugin.json來(lái)定義插件的基本信息、依賴信息、服務(wù)和擴(kuò)展,該文件必須在插件根目錄下,并且包含。一個(gè)插件由plugin.json和其它文件構(gòu)成,其它文件為可選,可以包括js、html、css文件等。如下為一個(gè)插件示例。對(duì)于plugin.json文件,除了id是必填屬性,其它均為可選,這意味著最小的插件為一個(gè)只定義了plugin.json且該文件只聲明插件id。
通OSGi規(guī)范類(lèi)似,每一個(gè)插件可以定義一個(gè)激活器,默認(rèn)為Activator.js,如果命名不是默認(rèn)值,則需要在plugin.json里面通過(guò)activator定義該激活器文件名。一個(gè)典型的Activator定義如下,用于聲明插件的入口和出口。
這里start與stop分別代表入口和出口,用于服務(wù)注冊(cè)、綁定、事件監(jiān)聽(tīng)等。
插件間通過(guò)服務(wù)進(jìn)行通訊,一個(gè)插件注冊(cè)服務(wù),一個(gè)插件消費(fèi)服務(wù)。插件注冊(cè)可以通過(guò)plugin.json來(lái)聲明,也可以通過(guò)激活器start方法的PluginContext參數(shù)的addService來(lái)注冊(cè)服務(wù)。如下所示,使用plugin.json來(lái)注冊(cè)一個(gè)服務(wù)。
另一個(gè)插件,可以通過(guò)激活器來(lái)消費(fèi)服務(wù)。
該框架還提供了插件擴(kuò)展、類(lèi)加載等特性,可以通過(guò)框架提供的實(shí)例來(lái)探索。以下是一個(gè)插件化的REST框架,基于插件化構(gòu)建的實(shí)例,可以通過(guò)源碼下載獲取。
關(guān)于“JavaScript插件化框架MinimaJS的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。