Electron開発環境をWindows上に用意する
GUIアプリケーションをJavaで作った場合とElectronで作った場合の配布イメージサイズと展開後のサイズを比較するため、初めてのElectron開発環境を整えます。OSはWindowsです。
npmコマンドありきのインストール手順が氾濫
最初の躓きは、Electron開発環境を用意する手順の最初で、npmコマンドが前提となっていることでした。 これは公式サイトに記載されるインストール記事 Installation | Electron でもそうでした。
公式サイトのドキュメントトップページには、 「このドキュメントの読み手はNode.jsと一般的なWeb開発に親しんでることを前提にしている」 とのことで、どうやら開発環境を用意するのにもNode.jsがあって当然となっているようです。
npmとは
Node.jsと呼ぶJavaScript実行環境で使われるパッケージ管理ツール(npm:Node Package Manager)とのことです。
Electronは、Node.jsとChromiumを組み込んだJavaScript、HTMLそしてCSSで記述するデスクトップアプリケーション基盤です。
インストールすべきもの
Node.js
まず、Node.jsをインストールします。バージョンは、Electronの公式サイトにその時点の安定板、ベータ版、アルファ版、ナイトリービルド版における組み合わせを参照します。

本日(2021-08-09)時点のバージョン番号は次です。
| 構成名 | バージョン |
|---|---|
| Electron | 13.1.7 |
| Node | 14.16.0 |
| Chromium | 91.0.4472.124 |
そこで、Node.js の 14.16.0をインストールしてみることにします。 次のページから、Node.js 14.16.0 のダウンロードを辿り、Windows用のインストーラを入手します。
インストーラは、node-v14.16.0-x64.msi と node-v14.16.0-win-x64.zip があります。ここではMSI形式を入手しました。環境変数PATHを設定してくれるので楽ですが、複数バージョンのNode.jsを使い分けるときはMSI形式でない方がよいかもしれません。
Electron
次のコマンドでElectronをインストールします。 コマンドを実行したディレクトリにElectronのファイル群がダウンロードされます。
D:\work\electron_hello> npm install electron --save-dev
> core-js@3.16.1 postinstall D:\work\electron_hello\node_modules\core-js
> node -e "try{require('./postinstall')}catch(e){}"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js:
> https://opencollective.com/core-js
> https://patreon.com/zloirock
> https://paypal.me/zloirock
> bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz
Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
> electron@13.1.8 postinstall D:\work\electron_hello\node_modules\electron
> node install.js
npm WARN saveError ENOENT: no such file or directory, open 'D:\work\electron_hello\package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open 'D:\work\electron_hello\package.json'
npm WARN hello No description
npm WARN hello No repository field.
npm WARN hello No README data
npm WARN hello No license field.
+ electron@13.1.8
added 87 packages from 97 contributors and audited 87 packages in 82.565s
6 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
ダウンロードされるファイル群は200MB弱になります。
Helloアプリケーション作成
Electronのインストールと順番は逆かもしれませんが、package.jsonファイルを作成します。
npm init コマンドで対話的に作成するか、エディタで記述します。 以下はnpm initコマンドで対話的に作成した例です。
{
"name": "hello-app",
"version": "1.0.0",
"description": "Hello, World!",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "TAKAHASHI,Toru",
"license": "MIT"
}
startでelectronを起動するよう修正します。
"scripts": { "start": "electron ." },
main.js を作成します。
const { app, BrowserWindow } = require('electron')
function createWindow() {
const win = new BrowserWindow({
width: 320,
height: 200
})
win.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
})
- 注)app.on でactivate時、window-all-closed時の処理は省略
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello, Electron World!</title>
</head>
<body>
<p>Hello, Electron World!</p>
</body>
</html>
実行します。
D:\work\electron_hello> npm start > hello-app@1.0.0 start D:\work\electron_hello > electron .

配布
パッケージ作成ツールをインストールします。
D:\work\electron_hello> npm install --save-dev @electron-forge/cli : D:\work\electron_hello> npx electron-forge import :
パッケージを作成します。
D:\work\electron_hello> npm run make > hello-app@1.0.0 make C:\Users\toru\Documents\electron\learn\hello-app > electron-forge make ✔ Checking your system ✔ Resolving Forge Config We need to package your application before we can make it ✔ Preparing to Package Application for arch: x64 ✔ Preparing native dependencies ✔ Packaging Application Making for the following targets: squirrel ✔ Making for target: squirrel - On platform: win32 - For arch: x64
outディレクトリの中に配布パッケージが生成されます。
out\
+-- make\squirrel.windows\x64\
+-- hello-app-1.0.0 Setup.exe
+-- hello_app-1.0.0-full.nupkg
配布パッケージのファイルサイズは80MB強でした。
hello-app-1.0.0 Setup.exe を実行すると、C:\Users\<ユーザー名>\AppData\Local\hello-app\ の下にインストールされました。 コントロールパネルのプログラム一覧にも記載されています。
開発・配布・展開サイズ
このhello-appプログラムの開発ディレクトリ、インストーラファイル、インストール後に展開されたディレクトリのそれぞれの容量を次に示します。
| 種類 | 容量(MB) | 備考 |
|---|---|---|
| 開発ディレクトリ | 680MB | ビルド後のサイズ(配布イメージファイル含む) |
| 配布ファイル(インストーラ) | 78MB | Windowsの場合 |
| 展開ディレクトリ | 256MB |
最後に
- Node.js使えて当然、のドキュメントは、厳しい
- プログラム開発(npmコマンド実行時)、インターネット接続が必要でまた 時間がかかる
Electronは、Webアプリケーション開発者が持つ HTML、CSS、JavaScript のノウハウをそのまま使ってデスクトップアプリケーションをまるでWebアプリケーション開発であるかのように作る開発・実行環境という印象です。非Webアプリケーション開発者がElectronに取り組むには、Webアプリケーション開発スキルの基礎がないと大変です。
また、Webアプリケーション分野のツールなので、インターネット接続がマストです。