0Pricing
React Academy · レッスン

ElectronでReactをセットアップする

ViteとReactでElectronを設定し、安全なIPCのためにcontextBridgeを構成して、開発モードで実行します。

「ElectronでReactをセットアップする」はCoddyKit上の無料React Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全4レッスンが含まれています。

プロジェクトセットアップの概要

ReactとElectronのセットアップは、ViteのReactプロジェクトを作成し、electronとelectron-builderをdevDependenciesとして追加することから始めます。最終的にプロジェクトには2つのエントリーポイントが用意されます。レンダラー用のViteアプリと、Electronのメインプロセス用のmain.jsファイルです。

main.js ファイル

main.jsはElectronのエントリーポイントです。希望するウィンドウサイズとセキュリティ設定でBrowserWindowを作成し、Reactアプリを読み込みます。開発中はlocalhost:5173を、本番環境ではビルド済みファイルのパスを指定します。

electron-vite:推奨ツールキット

electron-viteは、ViteとElectronを統合するオールインワンのビルドツールです。複雑なマルチプロセスのビルド設定を自動的に処理します。メイン、preload、レンダラー用に個別のVite設定を提供し、開発ビルドと本番ビルドの両方を大幅に簡略化します。

vite.config.js の設定

Electron向けにViteを設定する場合は、自動検出に頼らず、ブラウザーのターゲットを明示的に指定する必要があります。これは、レンダラーがElectronに組み込まれた特定バージョンのChromiumで実行されるためです。electron-viteはこれを自動的に処理しますが、手動で設定する場合は、ビルドターゲットにChromeのバージョンを指定する必要があります。

開発ワークフロー

electron-vite devを実行すると、レンダラー用のVite開発サーバーとElectronのメインプロセスが同時に起動します。Vite開発サーバーはHot Module Replacementを提供するため、Reactコンポーネントの変更が完全な再起動なしでElectronウィンドウに即座に反映されます。

Electron における Hot Module Replacement

Electronのレンダラーでも、HMRはブラウザーと同じように機能します。編集中のコンポーネントは状態を保持したまま即座に再レンダリングされます。main.jsまたはpreloadスクリプトを変更した場合だけ、Electron全体の再起動が必要です。これらはViteのHMRの対象外で実行されるためです。

TypeScript の設定

Electron + React + TypeScriptのプロジェクトでは、メイン(Node.js/CommonJSを対象)、preload(Nodeのグローバル変数を備えたブラウザーに近い環境を対象)、レンダラー(標準的なブラウザー向けTypeScript)それぞれに、個別のtsconfigファイルが必要です。electron-viteはこれらの設定を自動的に構成します。

contextBridge のセットアップ

preloadスクリプトでは、contextBridge.exposeInMainWorldを使用して独自のAPIをレンダラーに公開します。一般的なパターンは、「api」のような名前空間を公開し、その中にipcRenderer.invokeの呼び出しをラップする関数を用意する方法です。これにより、Reactコンポーネントからメインプロセスの操作を扱うための、シンプルな非同期インターフェースを利用できます。

React から公開 API にアクセスする

Reactコンポーネントからは、window.api.myFunction()を呼び出して公開されたpreload APIを実行します。TypeScriptを使用する場合は通常、グローバル宣言(window: Window & { api: MyAPI })を追加します。これにより、公開されたインターフェースに対する型チェックと自動補完を利用できます。

本番環境向けのビルド

electron-vite buildは、3つすべてのターゲット(メイン、preload、レンダラー)をdist/フォルダーにコンパイルします。続いてelectron-builderが、それらをプラットフォーム固有のインストーラーにパッケージ化します。本番環境のmain.jsは、開発サーバーのURLではなく、バンドルされたファイルのパスからレンダラーを読み込みます。

セットアップでよくある落とし穴

セットアップで最もよくあるミスは、nodeIntegration:falseとcontextIsolation:trueを設定し忘れること(セキュリティホールの原因になります)、main.jsで誤ったURLを読み込むこと(開発環境と本番環境の取り違え)、レンダラーからElectronモジュールを直接インポートすること(クラッシュの原因になります)です。electron-viteのデフォルト設定により、これらの問題の大半は防止されます。

electron-vite の開発コマンド

electron-vite devを実行すると何が行われますか?

レッスンのまとめ

ReactとElectronのセットアップは、マルチプロセスのビルドに伴う複雑さを処理するelectron-viteによって効率化されます。開発ワークフローでは完全なHMRサポートを利用でき、contextBridgeによってレンダラーのAPI公開範囲を保護できます。また、TypeScriptの個別設定により、各プロセスに適切な型環境が用意されます。本番ビルドではelectron-builderを使用して、プラットフォーム固有のパッケージを作成します。

よくある質問

「ElectronでReactをセットアップする」レッスンは無料ですか?

はい。「ElectronでReactをセットアップする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全4レッスンが含まれています。

「ElectronでReactをセットアップする」で何を学びますか?

ViteとReactでElectronを設定し、安全なIPCのためにcontextBridgeを構成して、開発モードで実行します。 ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

React Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「ElectronでReactをセットアップする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このReact Academyレッスンでコードを書いて実行できますか?

はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Electronのアーキテクチャ:メインプロセスとレンダラープロセス
  2. ElectronでReactをセットアップする
  3. プロセス間のIPC通信
  4. デスクトップ向けのパッケージ化と配布
← React Academyに戻る