在 Parcel 中,一個 Packager 將多個 資源合并到一個最終生成的 bundle 中。此過程發(fā)生在主進程中,且在所有資源被處理及 bundle 樹被創(chuàng)建之后。Packager 的注冊是基于輸出文件類型,并且用于生成這種文件類型的資源會被送到 packager 中去生成最后生成的輸出文件。
const { Packager } = require('parcel-bundler')
class MyPackager extends Packager {
async start() {
// 可選,寫文件頭部內(nèi)容
await this.dest.write(header)
}
async addAsset(asset) {
// 必須。將資源寫入生成文件。
await this.dest.write(asset.generated.foo)
}
async end() {
// 可選,寫文件尾內(nèi)部內(nèi)容。
await this.dest.end(trailer)
}
}
你可以用 addPackager 方法在打包工具中注冊一個 packager。它接受一個文件類型及 packager 模塊的所在路徑用于注冊。
const Bundler = require('parcel-bundler')
let bundler = new Bundler('input.js')
bundler.addPackager('foo', require.resolve('./MyPackager'))
更多建議: