Electron アプリの Windows インストーラーを作成する
Electron Packager または Forge でアプリをパッケージし、出力フォルダーをウィザード・ショートカット・アンインストーラー付きの Setup.exe に変換します。electron-builder の設定は不要です。
更新日 2026年10月31日 · 読了 6 分
Electron は、動作する Windows アプリをフォルダーとして出力します。MyApp.exe、いくつかの DLL、resources/app.asar、そして locales です。このフォルダーを Setup.exe にするのは別の工程で、よく使われるツール(electron-builder、Squirrel、electron-forge の maker)にはそれぞれ独自の設定、癖、ビルドマシンへの要件があります。ウィザード形式のインストーラーのためだけにそれらを学びたくないなら、こちらが近道です。
ステップ 1:アプリをフォルダーにパッケージする
必要なのはパッケージ済みのアプリであって、開発プロジェクトではありません。以下のどちらのツールでも、配布できるフォルダーが生成されます。
Electron Packager(コマンド 1 つ、設定ファイル不要):
npx @electron/packager . MyApp --platform=win32 --arch=x64 --icon=build/icon.ico --overwrite
これで MyApp-win32-x64/ が作成され、その中に MyApp.exe が入ります。
Electron Forge、すでにプロジェクトで使っている場合:
npm run package
フォルダーは out/ の下に生成されます。例:out/MyApp-win32-x64/。
どちらのコマンドも Windows、macOS、Linux で動作します。--icon フラグ(Forge では packagerConfig.icon)は MyApp.exe に埋め込むアイコンを指定します。この .ico ファイルはインストーラーでも使うので、手元に置いておいてください。
フォルダーを開いて MyApp.exe をダブルクリックし、パッケージ済みアプリが起動することを確認します。32 ビット版が必要な場合は、代わりに --arch=ia32 を指定します。
ステップ 2:フォルダーを zip 圧縮する
MyApp-win32-x64/ の中身(.exe、DLL、resources/、locales/)を zip にします。親のプロジェクトではありません。zip の中身はすべてそのままインストールされるので、配布すべきでないものは入れないでください。
ステップ 3:インストーラーをビルドする
- zip を ExeTup にアップロードします。ファイルの一覧が表示され、
MyApp.exeがメインプログラムとして選ばれるので、確認します。 - アプリ名、バージョン(
package.jsonと合わせます)、発行者、必要ならライセンスを入力します。 - インストール範囲を選びます。Electron アプリはユーザーごとにインストールするのが一般的で、管理者権限が不要なうえ、Squirrel ベースのインストーラーと同じ動作になります。マシン上の全員が使えるように Program Files に入れたい場合はすべてのユーザーを選びます。
- x64 パッケージなら 64 ビットのままにします。
- インストーラーとショートカットに同じ
.icoをアップロードし、スタートメニューとデスクトップのショートカットを有効にし、必要なら「インストール後に起動」もオンにします。 - ビルドして
Setup.exeをダウンロードし、Windows でテストします。
Electron 固有の注意点
- サイズ。 パッケージ済みの Electron アプリは非圧縮で 150〜250 MB あります。インストーラーはソリッド LZMA 圧縮を使うため、通常は 60〜90 MB まで小さくなります。zip にする前に料金セクションでアップロード上限を確認してください。上限はサイト側で設定されています。
- 自動更新。 このインストーラーには更新フィードは含まれません。
electron-updaterや Squirrel の更新機構を使っているなら、そちらを維持してください。このガイドは、新しいバージョンを新しいインストーラーとして配布するアプリ向けです。その方が簡単で、多くのアプリには十分です。 - スタートアップ起動。 インストール時に選択させたい場合は、
app.setLoginItemSettingsではなくインストーラーの「スタートアップ時に起動」オプションを使ってください。どちらも同じ種類の Run エントリを書き込みます。 - コード署名。 パッケージ済みの
MyApp.exeとSetup.exeは、自分で署名しない限り未署名です。未署名のダウンロードは SmartScreen の警告を引き起こすことがあります。SmartScreen のガイドを参照してください。
electron-builder の NSIS ターゲットとの比較
electron-builder も NSIS インストーラーを生成でき、差分更新、カスタム NSIS スクリプト、MSI 出力、署名フックといったフル機能が必要なら良いツールです。その代わり、設定とビルド環境の維持が必要になります。ExeTup はパッケージ済みフォルダーから同じ種類の NSIS インストーラーをビルドし、オプションはフォームで設定します。リリース頻度が低いチームや、Mac でビルドしていてインストーラーのためだけに Windows パイプラインを持ちたくないチームに向いています。
よくある質問
パッケージ済みアプリの代わりに Electron のプロジェクトフォルダーをアップロードできますか?
できません。インストーラーが包むのは Electron Packager または Forge の出力、つまり MyApp.exe を含むフォルダーです。ソースプロジェクト、node_modules、開発ツールはそこに含めません。
Electron アプリにはどのインストール範囲を使うべきですか?
ユーザーごとが一般的な選択です。管理者の確認なしに、ユーザー自身のフォルダーにインストールされるからです。IT 部門がマシン上のすべてのアカウントにアプリを配布する場合は、すべてのユーザーを選んでください。
アンインストール中にアプリが開いていても、インストーラーは対処できますか?
アンインストーラーは自分がインストールしたファイルを削除します。他の Windows プログラムと同様に、先にアプリを閉じるようユーザーに案内してください。実行中の .exe は終了するまで削除できません。
Tauri や NW.js で作ったアプリでも使えますか?
使えます。Windows の .exe とそのファイルを含むフォルダーなら何でも包めます。Tauri には独自のバンドラーがありますが、通常のパッケージ出力でもここでは同じように動作します。
関連ガイド
- Windows アプリの Setup.exe を作る方法(コード不要)Setup.exe が実際に行うこと、作成する3つの方法、そしてインストーラースクリプトを書かずにアプリのフォルダーを数分でプロ品質のインストーラーに変える方法を解説します。
- Mac や Linux で Windows インストーラーを作成するmacOS や Linux で開発しているときに Setup.exe を作る方法を解説します。NSIS のクロスコンパイルからブラウザーだけで完結するビルドまで、そして Windows PC を持たずに結果をテストする方法も紹介します。
- 「Windows によって PC が保護されました」:SmartScreen 警告の意味と消し方新しいインストーラーで Windows が「発行元不明」の警告を表示する理由、ユーザーが押せるボタン、そしてコード署名と評価によって警告が消える仕組みを解説します。