詳解開源的JavaScript插件化框架MinimaJS
本文介紹我開發(fā)的一個JavaScript編寫的插件化框架——MinimaJS,完全開源,源碼下載地址:https://github.com/lorry2018/minimajs。該框架參考OSGi規(guī)范,將該規(guī)范定義的三大插件化功能在Node上實現(xiàn)了。MinimaJS三個功能:動態(tài)插件化,服務和擴展。該框架基于VSCode開發(fā)、使用ES6編碼,基于Node 8開發(fā),代碼量幾千行,非常的簡單、優(yōu)雅、輕量。框架的代碼結構劃分清晰,命名優(yōu)雅。
我們先簡單看一下,如何來使用這個框架。
通過這幾行代碼就可以創(chuàng)建一個插件框架,并且從當前的plugins目錄下加載插件。
每一個插件在plugins目錄下,由plugin.json來定義插件的基本信息、依賴信息、服務和擴展,該文件必須在插件根目錄下,并且包含。一個插件由plugin.json和其它文件構成,其它文件為可選,可以包括js、html、css文件等。如下為一個插件示例。對于plugin.json文件,除了id是必填屬性,其它均為可選,這意味著最小的插件為一個只定義了plugin.json且該文件只聲明插件id。

通OSGi規(guī)范類似,每一個插件可以定義一個激活器,默認為Activator.js,如果命名不是默認值,則需要在plugin.json里面通過activator定義該激活器文件名。一個典型的Activator定義如下,用于聲明插件的入口和出口。
這里start與stop分別代表入口和出口,用于服務注冊、綁定、事件監(jiān)聽等。
插件間通過服務進行通訊,一個插件注冊服務,一個插件消費服務。插件注冊可以通過plugin.json來聲明,也可以通過激活器start方法的PluginContext參數(shù)的addService來注冊服務。如下所示,使用plugin.json來注冊一個服務。
另一個插件,可以通過激活器來消費服務。
該框架還提供了插件擴展、類加載等特性,可以通過框架提供的實例來探索。以下是一個插件化的REST框架,基于插件化構建的實例,可以通過源碼下載獲取。

這個示例演示了Express、Art-Template、WebAPI框架、插件動態(tài)擴展、Web輕量框架的構建,詳細可以查看實例。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
echarts實現(xiàn)地圖定時切換散點與多圖表級聯(lián)聯(lián)動詳解
這篇文章主要給大家介紹了關于echarts實現(xiàn)地圖定時切換散點與多圖表級聯(lián)聯(lián)動的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-08-08
javascript實現(xiàn)Email郵件顯示與刪除功能
這篇文章主要介紹了javascript實現(xiàn)Email郵件顯示與刪除功能,需要的朋友可以參考下2015-11-11
javascript firefox兼容ie的dom方法腳本
js firefox下兼容ie的dom的實現(xiàn)方法小結。利用我們?yōu)榱思嫒荻酁g覽器寫出更好的效果代碼2008-05-05
JavaScript使用Promise實現(xiàn)分批處理接口請求
當我們在實際項目中遇到需要批量發(fā)起上百條接口請求怎么辦呢,本文就來為大家介紹一下JavaScript如何使用Promise實現(xiàn)分批處理接口請求,需要的小伙伴可以參考一下2023-11-11
jQuery animate()實現(xiàn)背景色漸變效果的處理方法【使用jQuery.color.js插件】
這篇文章主要介紹了jQuery animate()實現(xiàn)背景色漸變效果的處理方法,結合實例形式分析了jQuery顏色插件jquery.color.js實現(xiàn)背景色漸變的簡單操作技巧,需要的朋友可以參考下2017-03-03

