Electron での ES Modules (ESM)
はじめに
ECMAScript Module (ESM) 形式は、JavaScript パッケージの標準的な読み込み方法 です。
Chromium と Node.js にはそれら独自の ESM 仕様の実装があり、Electron はコンテキストに応じて使用するモジュール ローダーを選択します。
このドキュメントでは、Electron の ESM における制限、及び Electron の ESM と Node.js や Chromium の ESM との違いの概要を説明します。
info
この機能は electron@28.0.0
で追加されました。
概要: ESM のサポートマトリックス
この表には、ESM がサポートされる場所と、どの ESM ローダーが使用されるかについての概要を示します。
プロセス | ESM ローダー | プリロードでの ESM ローダー | 適用可能となる要件 |
---|---|---|---|
メイン | Node.js | なし | |
レンダラー (サンドボックス化) | Chromium | 未サポート | |
レンダラー (非サンドボックス化 & コンテキスト隔離) | Chromium | Node.js | |
レンダラー (非サンドボックス化 & コンテキスト隔離なし) | Chromium | Node.js |
メインプロセス
Electron のメインプロセスは Node.js のコンテキストで実行され、その ESM ローダーを使用します。 使用方法は Node の ESM のドキュメント に従ってください。 メインプロセスのファイルで ESM を有効化するには、次の条件のいずれかを満たす必要があります。
- ファイル名が
.mjs
の拡張子で終わること。 - 最も近い親パッケージの package.json に
"type": "module"
が設定されていること
詳細については、Node の モジュールシステムの決定 のドキュメントをご参照ください。