Packhouse
Search
K
Comment on page

Plugin

Packhouse Plugin
Packhouse的Plugin只能存在於實體化的對象,沒有全局註冊的行為。
Order是我們提供的套件 ,也是一個簡單的開發範例。
我們可以藉由我們不推薦你直接使用plugin,請參閱正規化方法Main
const Order = require('packhouse/plugins/Order')
const Packhouse = require('packhouse')
const packhouse = new Packhouse()
packhouse.plugin(Order)
console.log(packhouse.order()) // Order

Develop

Plugin是一個class,會在constructor的第一個參數中接收到實體化的Packhouse對象。
class MyPlugin {
constructor(packhouse) {
packhouse.hello = function() {
console.log(`hello world.`)
}
}
}
const Packhouse = require('packhouse')
const packhouse = new Packhouse()
packhouse.plugin(MyPlugin)
packhouse.hello() // hello world.

Repeat Registration Of Plugins

當Packhouse偵測到相同的Class對象,則不會有任何反應。
packhouse.plugin(Order)
// 以下行為不會觸發任何事
packhouse.plugin(Order)
這意味著當你基於外部開發時引入某些Plugin時能有更多元的註冊行為:
const group = {
install(group, options, packhouse) {
packhouse.plugin(require('packhouse/plugins/Order'))
}
}