請注意: 此頁為 Parcel 1 的說明,Parcel 2 版本的說明頁面尚未完成。

📦 Packagers

在 Parcel 中, Packager 會將多個資源 (Asset) 合併輸出至最終的 bundle 裡,這個過程會發生在主程序,於所有資源被處理且 bundle 樹建立之後。

Packager 的註冊是基於輸出檔案的類型,資源則會被送至處理其檔案類型的 Packager 中產生最終輸出檔案。

Packager 介面

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

class MyPackager extends Packager {
  async start() {
    // 非必要,寫入至檔案頂部。
    await this.dest.write(header)
  }

  async addAsset(asset) {
    // 必要項,將資源寫入至輸出檔案。
    await this.dest.write(asset.generated.foo)
  }

  async end() {
    // 非必要,寫入至檔案尾部。
    await this.dest.end(trailer)
  }
}

module.exports = MyPackager

註冊一個 Packager

你可以使用 addPackager 方法向 Parcel 註冊一個 Packager,此方法接受兩個參數,一個為欲註冊的檔案類型,另一個為 packager 模組的路徑。

const Bundler = require('parcel-bundler')

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

協助我們讓本文件更加完善

若有什麼內容遺漏了或是敘述不清楚的地方,請在本站的 repository 中開啟一個 issue 或者編輯此頁面。