打包器
打包器
在 Parcel 中,一個(gè) Packager (打包器)將多個(gè) Asset (資源)合并到一起成為最終的輸出文件包。這發(fā)生在處理所有資源之后的主進(jìn)程中,并創(chuàng)建了一個(gè)包文件樹。打包器根據(jù)輸出文件類型進(jìn)行注冊(cè),并且已經(jīng)生成該輸出類型的資源被發(fā)送到該打包器以產(chǎn)生最終的輸出文件。
打包器接口
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); } }
注冊(cè)一個(gè)打包器
你可以使用 addPackager 方法,使用打包工具注冊(cè)打包器(packager)。它接受要注冊(cè)的文件類型以及打包器模塊的路徑。
const Bundler = require('parcel-bundler'); let bundler = new Bundler('input.js'); bundler.addPackager('foo', require.resolve('./MyPackager'));