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"
` を追加してみましょう。
バージョンアップによる落とし穴ですが、対処はシンプルです。
コメント