Electron デバッグ設定 VSCode

今回は、Electron開発時のデバッグ設定についてのメモです。

デバッグ対象となるElectronのアプリは、純粋なHTML + JavaScript + CSSのみで構成される想定での設定です。

環境

  • Node.js:v24.11.1
  • Electron:v27.3.11

開発者ツール表示

Web開発時に利用するChrome開発者ツールの表示方法です。

フロントエンドをいじっている人であればお馴染みのディベロッパーツール表示です。

Electron developer tool

以下関数を利用します。

mainWindow.webContents.openDevTools()

https://www.electronjs.org/ja/docs/latest/tutorial/application-debugging

実装例

function createWindow() {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js'),
      contextIsolation: true,
      nodeIntegration: false
    }
  });

  mainWindow.loadFile('index.html');
  
  // 開発時にDevToolsを開く
  mainWindow.webContents.openDevTools();
}

mainWindowを作成した後に指定する必要があります。

// 1. loadFile の直後
mainWindow.loadFile('index.html');
mainWindow.webContents.openDevTools();

// 2. ウィンドウ作成の最後
const mainWindow = new BrowserWindow({...});
mainWindow.loadFile('index.html');
mainWindow.webContents.openDevTools();

// 3. コンテンツ読込完了後
mainWindow.webContents.on('did-finish-load', () => {
  mainWindow.webContents.openDevTools();
});

// 4. createWindow 関数の外でも可能
app.whenReady().then(() => {
  const win = createWindow();
  win.webContents.openDevTools();
});

デバッグ確認範囲

開発者ツールでデバッグできる範囲は、
スクリプトタグで読み込まれたjsなど、Chromiumが読み込んで認識できる範囲となります。
メインプロセス(Node.js)実行しているmain.js等の部分は範囲外となります。

Electron developer tool

関連

用途は限られていますが、webContentsでディベロッパーツールの操作処理などもサポートしています。
https://www.electronjs.org/ja/docs/latest/api/web-contents

// DevToolsを閉じる
mainWindow.webContents.closeDevTools();

// DevToolsの開閉状態を確認
const isOpen = mainWindow.webContents.isDevToolsOpened();

// DevToolsの表示/非表示を切り替え
mainWindow.webContents.toggleDevTools();

// DevToolsにフォーカス
mainWindow.webContents.devToolsWebContents.focus();

メインプロセスデバッグ(VSCode)

https://www.electronjs.org/ja/docs/latest/tutorial/debugging-vscode

まずlaunch.jsonを作成します。

Electron debug setting vscode

launch.jsonの内容を以下のような編集します。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Electron: Main",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
      },
      "args": ["."],
      "outputCapture": "std"
    }
  ]
}

Electron debug setting vscode

メインプロセスの部分もステップ実行など行えます。

Electron debug setting vscode


今回のメモは以上となります。

JavaScript(Webフロントエンド・バックエンド)の知識が必要ですが、
Electron以外でもよくある構造になっていますので、デバッグ設定も簡単に行えます。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 184

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る