亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Parcel 中文參考文檔 / 資源類(lèi)型

資源類(lèi)型

資源類(lèi)型
正如 資源文檔 中所述,Parcel 將每個(gè)輸入文件描述為 Asset (資源) 。 資產(chǎn)類(lèi)型被描述為從 Asset 基類(lèi)繼承的類(lèi),并實(shí)現(xiàn)所需的接口來(lái)解析,分析依賴(lài)關(guān)系,轉(zhuǎn)換和代碼生成。
由于 Parcel 跨多個(gè)處理器內(nèi)核并行處理資源,因此資源類(lèi)型可以執(zhí)行轉(zhuǎn)換,僅限于一次對(duì)單個(gè)文件進(jìn)行操作的轉(zhuǎn)換。 要想跨多個(gè)文件進(jìn)行轉(zhuǎn)換,可以使用自定義的 Packager 。
資源接口

const {Asset} = require('parcel-bundler');
class MyAsset extends Asset {
  type = 'foo'; // 設(shè)置主輸出類(lèi)型
  parse(code) {
    // 將代碼解析為 AST
    return ast;
  }
  pretransform() {
    // 可選。在收集依賴(lài)之前轉(zhuǎn)換。
  }
  collectDependencies() {
    // 分析依賴(lài)
    this.addDependency('my-dep');
  }
  transform() {
    // 可選。在收集依賴(lài)之后轉(zhuǎn)換。
  }
  generate() {
    // 生成代碼。如有需要,可提供多個(gè)返回。
    // 結(jié)果會(huì)傳到合適的 packagers 去生成最終的文件束
    return {
      foo: 'my stuff here', // 主輸出
      js: 'some javascript' // 如若需要,此轉(zhuǎn)換內(nèi)容可被放到 JS 文件束中
    };
  }
}

注冊(cè)資源類(lèi)型
你可以使用 addAssetType 方法通過(guò)打包器注冊(cè)你的資源類(lèi)型。它接受要注冊(cè)的文件擴(kuò)展名和資源類(lèi)型模塊的路徑。這是一個(gè)路徑,而不是實(shí)際的對(duì)象,這樣做以便它可以傳遞給工作進(jìn)程。

const Bundler = require('parcel-bundler');
let bundler = new Bundler('input.js');
bundler.addAssetType('.ext', require.resolve('./MyAsset'));