electron の ブラウザウインドウ内で process.envの値を取得することはできるか

Electronのブラウザウィンドウ内でprocess.envの値を取得することができます。ただし、Electronのメインプロセスとレンダラープロセスの間では、process.envの値が異なることに注意してください。

メインプロセスでは、process.envはNode.jsのグローバル変数として利用可能です。メインプロセスでは、process.envに直接アクセスして、環境変数の値を取得できます。

レンダラープロセス(ブラウザウィンドウ内のJavaScriptコンテキスト)では、process.envにはアクセスできませんが、preloadスクリプトを使用して値を渡すことができます。

以下に、Electronのメインプロセスからレンダラープロセスへprocess.envの値を渡す方法の例を示します。

メインプロセスのコード:

const { app, BrowserWindow } = require('electron');

app.on('ready', () => {
  const mainWindow = new BrowserWindow({
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  });

  mainWindow.loadURL('your-app-url');
});

preload.jsファイルのコード:

window.addEventListener('DOMContentLoaded', () => {
  const { ipcRenderer } = require('electron');

  ipcRenderer.send('env-variables', process.env);
});

これにより、メインプロセスからレンダラープロセスにprocess.envの値が渡されます。レンダラープロセスでは、ipcRendererを使用してメインプロセスからのメッセージを受信し、その値を利用することができます。

ただし、セキュリティ上の理由から、注意が必要です。環境変数には機密性の高い情報が含まれる場合がありますので、適切なセキュリティ対策を講じる必要があります。

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