リソースの種類


リソース タイプ
リソース ドキュメントで説明されているように、Parcel は各入力ファイルをアセットとして記述します。アセット タイプは、アセット基本クラスから継承し、解析、依存関係の分析、変換、およびコード生成に必要なインターフェイスを実装するクラスとして記述されます。
Parcel は複数のプロセッサ コア間でリソースを並行して処理するため、リソース タイプが実行できる変換は、一度に 1 つのファイルに対して動作する変換に限定されます。複数のファイルにまたがって変換するには、カスタム パッケージャーを使用できます。
リソース インターフェイス

const {Asset} = require('parcel-bundler');
class MyAsset extends Asset {
  type = 'foo'; // 设置主输出类型
  parse(code) {
    // 将代码解析为 AST
    return ast;
  }
  pretransform() {
    // 可选。在收集依赖之前转换。
  }
  collectDependencies() {
    // 分析依赖
    this.addDependency('my-dep');
  }
  transform() {
    // 可选。在收集依赖之后转换。
  }
  generate() {
    // 生成代码。如有需要,可提供多个返回。
    // 结果会传到合适的 packagers 去生成最终的文件束
    return {
      foo: 'my stuff here', // 主输出
      js: 'some javascript' // 如若需要,此转换内容可被放到 JS 文件束中
    };
  }
}

リソース タイプの登録
addAssetType メソッドを使用して、パッケージャーを通じてリソース タイプを登録できます。登録するファイル拡張子とリソース タイプ モジュールへのパスを受け入れます。これは実際のオブジェクトではなくパスであり、ワーカー プロセスに渡すために作成されます。

うわー