Electronを使ってWebページからWindowsの実行ファイルを作る

この記事は約5分で読めます。
スポンサーリンク

やりたいこと

下のElectronを使ってWindows向けのアプリケーションを作成します。

electronとは

electronはJavaScript/HTML/CSSで作成したWebページから実行ファイルを作成します。

Windows/MAC/Linux向けの実行ファイルが作成できますが、ここではWindows向けの実行ファイルを作成します。

詳細は以下の公式ページ。

Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron
Build cross-platform desktop apps with JavaScript, HTML, and CSS
スポンサーリンク

プロジェクトの作成

事前準備

Node.jsが必要です。

以下のリンクから環境にあったNode.jsをインストールします。

Node.js — Download Node.js®
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

プロジェクトの作成

任意の作業フォルダを作成して以下のコマンドを実行します。

npm init -y
スポンサーリンク

Electronでの実行

Electronのインストール

インストール

コマンドプロンプトを開いて作業フォルダで以下のコマンドを実行します。

npm i electron --save-dev

実行するファイルの準備

実行ファイルに変更するファイルを作成したフォルダの下にSrcフォルダを作成して置きます。(例えばViteでバンドルしたdistフォルダの中をまるごと任意のフォルダにコピーします。)フォルダ構成は元の構成を壊さないようにしてください。

今回用意したファイルは以下の2個です。同じフォルダに保存します。

index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>ELECTRON TEST</title>
</head>

<body>
	<h1>ELECTRON TEST</h1>
	<img src="./img.png">
</body>
</html>

img.png

エントリーポイントの作成

上記の2個のファイルを作成したフォルダに新規でmain.jsという名前のファイルを作成します。

(index.html以外のファイルを読み込む場合はwin.loadFile(‘file://’ + __dirname + ‘/index.html’)のindex.html部分を編集します)

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

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600
  })

  win.loadFile('file://' + __dirname + '/index.html');
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

loadFileの引数は”index.html”だけでもElectronは実行できますが、パッケージした後に失敗します。

実行

作業フォルダ(Srcフォルダの親フォルダ)で以下のコマンドを実行します。

node_modules/.bin/electron .

以下のように作成したHTML+画像が表示されます。

スポンサーリンク

パッケージ化

electron-builderのインストール

作業フォルダで以下のコマンドでelectron-builderをインストールします

npm i electron-builder --save-dev

Package.jsonの修正

プロジェクトフォルダにあるPackage.jsonを開きます。

以下の設定を

"main": "index.js",

下のように修正します

"main": "src/main.js",

electron-builderの実行

以下のコマンドでビルドが行えます。

node_modules\.bin\electron-builder build

distフォルダ下にexeファイルができれば完了です。(dist直下にあるexeはインストーラです)

以下のようなエラーがでた場合、管理者権限がない場合があります。

ビルドのコマンドを実行するアプリ(コマンドプロンプトやVisualStudioCodeなど)を管理者権限で実行してコマンドを実行してください。

ERROR: Cannot create symbolic link : �N���C�A���g�͗v�����ꂽ�������ۗL���Ă��܂����B
スポンサーリンク

結果

webアプリケーションをWindowsで動作するexeファイルにすることができました。

ご参考

作成されたファイルサイズは以下の通りです。(チューニングはしていない状態では最小に近いと思います。)

Chromiumを使用しているのでそれなりに大きいです。

ファイルサイズ(MByte)
インストーラ78
展開後264

スポンサーリンク

参考にさせていただいたサイト

初めてのアプリのビルド | Electron
このガイドでは、Electron で electron/electron-quick-start に似た素朴な Hello World アプリの作成手順について説明します。
ようこそ!Electron入門 - Qiita
ようこそ!Electron入門Electronって?・クロスプラットフォーム型の実行フレームワーク👉 Mac、Windows、Linux上で動く・Webの技術(HTML5やJavaScrip…
最新版で学ぶElectron入門 - ウェブ技術でPCアプリを開発しよう - ICS MEDIA
Electron(エレクトロン)とは、ウェブ技術でデスクトップアプリケーションを作成できるテクノロジーです。HTMLとCSS、JavaScriptを使って開発し、WindowsとmacOSの両OSのアプリケーションを1つのコードから作ることができます。

コメント

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