PR

VSCodeで、Electronアプリのデバッグでメインプロセスが立ち上がらない場合の対処

Javascript
記事内に広告が含まれています。
スポンサーリンク

Electronアプリを開発中、VSCodeでメインプロセスをデバッグしようとした際に、なぜかメインプロセスが立ち上がらずに苦戦したことはありませんか?
実は、Node.js v22.6以降では、ある実験的なオプションが影響して、Electronアプリの起動時にエラーが発生するケースがあります。


スポンサーリンク

症状

VSCodeからElectronのメインプロセスをデバッグしようとしたところ、次のようなエラーが発生し、プロセスが起動しませんでした。

Uncaught CACError: Unknown option `--experimentalNetworkInspection`

これは、Node.js v22.6以降の変更によって、--experimental-network-inspection オプションの扱いが変わったことが原因です。


原因

VSCodeのデバッグ時、Electronアプリのプロセス起動時に --experimental-network-inspection オプションが自動で付与される場合があります。

Node.js v22.6からはこのオプションがサポートされなくなったか、正しく解釈されなくなっており、そのままだと起動時にエラーが出てメインプロセスが止まってしまいます。


解決策

VSCodeのデバッグ設定ファイルである launch.json に、以下のように runtimeArgs を追記して、experimental networkingを明示的にオフにすることで解決できます。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Electron Main",
      "program": "${workspaceFolder}/node_modules/electron/dist/electron.js",
      "args": ["."],
   "experimentalNetworking": "off",
      "runtimeArgs": ["--sourcemap"],
      "env": {
        "ELECTRON_ENABLE_LOGGING": "true"
      }
    }
  ]
}

あるいは、Electron側の設定やスクリプトから起動している場合は、次のように process.env.NODE_OPTIONS--no-experimental-network-inspection を設定しても回避可能です。


補足:Node.jsのバージョンを一時的に下げる手もある

根本的にはこのフラグの扱いが変わったのが原因なので、Node.jsのバージョンをv22.5以前に戻すという方法もあります。ただし将来的には上げざるを得ないため、launch.jsonでの回避をおすすめします。


まとめ

Node.js v22.6以降でElectronアプリのデバッグ中に Uncaught CACError が出てメインプロセスが起動しない場合は、VSCodeの launch.json`"experimentalNetworking": "off"` を追加してみましょう。
バージョンアップによる落とし穴ですが、対処はシンプルです。

コメント

タイトルとURLをコピーしました