Parcel Packagers

2020-02-14 17:27 更新

Packagers

在 Parcel 中,一個(gè) Packager 將多個(gè) 資源合并到一個(gè)最終生成的 bundle 中。此過(guò)程發(fā)生在主進(jìn)程中,且在所有資源被處理及 bundle 樹(shù)被創(chuàng)建之后。Packager 的注冊(cè)是基于輸出文件類(lèi)型,并且用于生成這種文件類(lèi)型的資源會(huì)被送到 packager 中去生成最后生成的輸出文件。

Packager 接口

const { Packager } = require('parcel-bundler')

class MyPackager extends Packager {
  async start() {
    // 可選,寫(xiě)文件頭部?jī)?nèi)容
    await this.dest.write(header)
  }

  async addAsset(asset) {
    // 必須。將資源寫(xiě)入生成文件。
    await this.dest.write(asset.generated.foo)
  }

  async end() {
    // 可選,寫(xiě)文件尾內(nèi)部?jī)?nèi)容。
    await this.dest.end(trailer)
  }
}

注冊(cè)一個(gè) Packager

你可以用 addPackager 方法在打包工具中注冊(cè)一個(gè) packager。它接受一個(gè)文件類(lèi)型及 packager 模塊的所在路徑用于注冊(cè)。

const Bundler = require('parcel-bundler')

let bundler = new Bundler('input.js')
bundler.addPackager('foo', require.resolve('./MyPackager'))


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)