Parcel 采用與許多其它工具稍微不同的策略,許多常見(jiàn)的格式都被開(kāi)箱即用地包含進(jìn)來(lái),而不需要安裝或者配置額外的插件。然而,有些情況你可能會(huì)想在非標(biāo)準(zhǔn)的情況下擴(kuò)展 Parcel 的能力,而那些時(shí)候,插件是被支持的。安裝的插件會(huì)基于 package.json 的依賴會(huì)被自動(dòng)檢測(cè)并加載。
當(dāng)你添加一種全新的文件格式到 Parcel,你應(yīng)該先考慮它會(huì)有多通用,還有它的實(shí)現(xiàn)會(huì)有多標(biāo)準(zhǔn)化。如果它足夠通用及標(biāo)準(zhǔn),該格式很可能應(yīng)該被添加到 Parcel 的核心,而不是作為一種用戶需要安裝的插件。如果你有其它的疑惑,可以到GitHub一起討論。
Parcel 插件很簡(jiǎn)單。它們只是簡(jiǎn)單地將幾個(gè)模塊輸出成一個(gè)函數(shù),它會(huì)被 Parcel 在初始化的時(shí)候自動(dòng)調(diào)用。函數(shù)接收 Bundler 對(duì)象作為輸入,也可以做一些配置,比如注冊(cè)資源類型和注冊(cè) packager。
module.exports = function(bundler) {
bundler.addAssetType('ext', require.resolve('./MyAsset'))
bundler.addPackager('foo', require.resolve('./MyPackager'))
}
請(qǐng)發(fā)布這個(gè)包到 npm,并使用 parcel-plugin- 前綴,那它就會(huì)像后文提到的那樣被自動(dòng)檢測(cè)和加載。
在 Parcel 中使用插件是前所未有的簡(jiǎn)單。你所做的,只是將它們安裝好并保存到 package.json 中。插件需要以 parcel-plugin- 作為前綴被命名。例如 parcel-plugin-foo。任何在 package.json 中被列出的帶有此前綴的依賴,都會(huì)在初始化的時(shí)候被自動(dòng)加載。
更多建議: