Liferay npm Bundler (Deprecated)
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

バンドラー構成プリセットについて

重要

Liferay npm バンドラーは Liferay 2024.Q4/Portal GA129 で廃止され、将来削除される予定です。

liferay-npm-bundler には、デフォルトの設定プリセットが付属しています: liferay-npm-bundler-preset-standard.npmbundlerrc ファイルのnpmパッケージ名から liferay-npm-bundler プレフィックスを省略できます。 このプリセットは、自分でオーバーライドしない限り、ビルドプロセス用のいくつかのプラグインを構成し、自動的に使用されます( .npmbundlerrc がない場合も)。 このプリセットを使用して liferay-npm-bundler を実行すると、 設定ファイルliferay-npm-bundler-preset-standardから適用されます。

{
   "/": {
      "plugins": ["resolve-linked-dependencies"],
      ".babelrc": {
         "presets": ["liferay-standard"]
      },
      "post-plugins": ["namespace-packages", "inject-imports-dependencies"]
   },
   "*": {
      "copy-plugins": ["exclude-imports"],
      "plugins": ["replace-browser-modules"],
      ".babelrc": {
         "presets": ["liferay-standard"]
      },
      "post-plugins": [
         "namespace-packages",
         "inject-imports-dependencies",
         "inject-peer-dependencies"
      ]
   }
}

上記の構成は、すべてのnpmパッケージ(*)について、前処理フェーズ(プラグイン)が replace-browser-modules プラグインを実行する必要があることを示しています。 これを post-plugins に設定すると、代わりにポストフェーズで実行されます。

プロジェクトの .npmbundlerrc ファイルに独自の構成を追加することで、構成のプリセット値をオーバーライドできます。 たとえば、上記の設定プリセットの例を使用すると、 .babelrc ファイルに独自の .npmbundlerrc 値を定義して、定義されている "liferay-standard" babelrc プリセットを上書きできます。

Liferay標準プリセット

liferay-standard プリセット は、次のプラグインをパッケージに適用します。

  • exclude-imports: imports セクションで宣言されたパッケージをビルドから除外します。

  • inject-imports-dependencies: 依存関係の package.json ファイルの imports セクションで宣言された依存関係を注入します。

  • inject-peer-dependencies: 宣言されたピア依存関係 (プロジェクトの node_modules フォルダーで解決されるもの) を依存関係の package.json ファイルに挿入します。

  • namespace-packages: プロジェクトごとにパッケージを分離し、衝突を回避するために、ルート プロジェクトのパッケージ名に基づいた名前空間パッケージ名。 これにより、 <project-package-name>$package.json ファイル内の各パッケージ名の先頭に追加されます。

  • replace-browser-modules: package.jsonbrowser/unpkg/jsdelivr セクションにリストされているモジュールのサーバー側ファイルを、対応するブラウザーのファイルに置き換えます。

  • resolve-linked-dependencies: package.json ファイル内 (ローカル ファイル システムや GitHub などから取得されたもの) に表示されるリンクされた依存関係のバージョンを、プロジェクトの node_modules ディレクトリ内で解決された実際のバージョン番号に置き換えます。

Liferay Babelプリセット

バンドラーは、 babel-preset-liferay-standard プリセットを使用して Babel も実行し、次のプラグインを呼び出します。

  • babel-plugin-normalize-requires: AMD require() 呼び出しを正規化します。

  • babel-plugin-transform-node-env-inline: NODE_ENV 環境変数をインライン化し、それがバイナリ式の一部である場合 (例: process.env.NODE_ENV === "development")、静的に評価して置き換えます。

  • babel-plugin-minify-dead-code-elimination: 可能な場合はバインディングをインライン化します。 結果として式を評価しようとし、到達できないプルーニングを行います。

  • babel-plugin-wrap-modules-amd: AMD define() モジュール内にモジュールをラップします。

  • babel-plugin-name-amd-modules: パッケージ名、バージョン、モジュール パスに基づいて AMD モジュールに名前を付けます。

  • babel-plugin-namespace-modules: ルートプロジェクトのパッケージ名に基づいて名前空間モジュールを作成し、先頭に <project-package-name>$を付加します。 AMD define()モジュール内のモジュールをラップし、パッケージがプロジェクトごとにローカライズされ、クラッシュしないようにモジュール名の外観(define()またはrequire()コール)で表示します。

  • babel-plugin-namespace-amd-define: AMD define() 呼び出しにプレフィックスを追加します(デフォルトでは Liferay.Loader.)。

これで、 .npmbundlerrc 使用可能な構成プリセットと、それらがどのように機能するかがわかりました。