W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
插件機制是我們框架的一大特色。它不但可以保證框架核心的足夠精簡、穩(wěn)定、高效,還可以促進業(yè)務邏輯的復用,生態(tài)圈的形成。有人可能會問了
接下來我們就來逐一討論
我們在使用 Koa 中間件過程中發(fā)現了下面一些問題:
綜上所述,我們需要一套更加強大的機制,來管理、編排那些相對獨立的業(yè)務邏輯。
一個插件其實就是一個『迷你的應用』,和應用(app)幾乎一樣:
他們的關系是:
插件一般通過 npm 模塊的方式進行復用:
$ npm i egg-mysql --save |
注意:我們建議通過 ^ 的方式引入依賴,并且強烈不建議鎖定版本。
{ |
然后需要在應用或框架的 config/plugin.js 中聲明:
// config/plugin.js |
就可以直接使用插件提供的功能:
app.mysql.query(sql, values); |
plugin.js 中的每個配置項支持:
在上層框架內部內置的插件,應用在使用時就不用配置 package 或者 path,只需要指定 enable 與否:
// 對于內置插件,可以用下面的簡潔方式開啟或關閉 |
同時,我們還支持 plugin.{env}.js 這種模式,會根據運行環(huán)境加載插件配置。
比如定義了一個開發(fā)環(huán)境使用的插件 egg-dev,只希望在本地環(huán)境加載,可以安裝到 devDependencies。
// npm i egg-dev --save-dev |
然后在 plugin.local.js 中聲明:
// config/plugin.local.js |
這樣在生產環(huán)境可以 npm i --production 不需要下載 egg-dev 的包了。
注意:
// config/plugin.js |
插件一般會包含自己的默認配置,應用開發(fā)者可以在 config.default.js 覆蓋對應的配置:
// config/config.default.js |
具體合并規(guī)則可以參見配置。
參見文檔:插件開發(fā)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: