Electron でデスクトップアプリを作る

Electronアプリ を実行 アプリ開発

Javascript で デスクトップアプリ が簡単に作れる Electron を試してみたいと思います。

準備

Node.js がインストールされている前提で進めていきます。

node -v
# v12.18.1

npm -v
# 6.14.5

Electronアプリ を作る

Electron は Node.js によってパッケージ管理されているため、新規フォルダを作って プロジェクト を作成する必要があります。

npmパッケージ を作成

新規フォルダ内で下記コマンドを実行し「package.json」を作成します。

npm init

今回は「Hello-world」というアプリフォルダ名で作業して行きます。

初期化時の設定は下記の通りです。

  • package name: hello-world(初期値)
  • version: 1.0.0(初期値)
  • description: 未入力
  • entry point: main.js
  • test command: 未入力
  • git repository: 未入力
  • keywords: 未入力
  • author: 未入力
  • license: ISC(初期値)

変更点は entry point だけですね。index.js はメイン画面で使うので Electron では main.js に変更しました。

npm init 実行

新規フォルダ内に「package.json」が作られました。

package.json 作成

package.json を修正

「package.json」を作ったばかりですが、内容を一部修正します。

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
},

の部分を下記に修正します。

"scripts": {
  "start": "electron ."
},

これを忘れると Electron の実行が出来ませんので忘れずに修正しましょう。

package.json 修正

Electron をインストール

次に Electronパッケージ をインストールします。

アプリフォルダ内で下記コマンドを実行し Electron をインストールします。

npm install --save-dev electron
npm install electron 実行

アプリフォルダ内に「node_modules」フォルダと「package-lock.json」ファイルが作成されます。

node_modules と package-lock.json 追加

Electron用 Javascript の作成

まず初めに Electron を制御するための Javascript を作成します。

アプリフォルダ内に「main.js」ファイルを新規作成します。

main.js 作成

「main.js」に下記をコピペします。

const { app, BrowserWindow } = require('electron')
function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })
  win.loadFile('index.html')
}
app.whenReady().then(createWindow)

これで Electronアプリ の起動準備が出来ました。

main.js 修正

次に Electronアプリ内に表示する画面を作ります。

先程 index.html を読み込むように書いたので「index.html」を作ります。

index.html 作成

「index.html」に下記をコピペします。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World!</title>
</head>
<body>
    <h1>Hello World!</h1>
    We are using node <script>document.write(process.versions.node)</script>,
    Chrome <script>document.write(process.versions.chrome)</script>,
    and Electron <script>document.write(process.versions.electron)</script>.
</body>
</html>
index.html 修正

アプリの実行

ここまで出来れば Electronアプリ を実行することが出来ます。

コマンドプロンプトに下記を入力して Electronアプリ を実行してみます。

npm start
Electronアプリ を実行

エラーが出る場合は?

D:\Electron\Hello-world>npm run start
npm ERR! missing script: start

npm ERR! missing script: start

「スクリプトの start なんて無いぜ」と言ってます。

「package.json」の scripts 修正忘れていませんか? 少し記事をさかのぼって違いを探してみましょう。

デバッグを簡単にする

このままでもいいですが、実行するたびに「npm start」を入力するのは手間だと思います。

なのでデバック実行が簡単に出来る 起動構成 を作ります。

VS Code の 実行アイコンを押して「launch.json ファイルを作成します」をクリック。

launch.json ファイルを作成します

「Node.js」を選択。

構成の選択

「構成の追加」を押して「Run “npm start” in a debug terminal」を選択したら設定完了です。

Run "npm start" in a debug terminal

launch.json を保存してから 起動構成を今作った「Run npm start」に変えます。

Run npm start

最後に「F5キー」を押すか デバックの開始 を押せば Electronアプリを実行できます。

デバックの開始

「停止」ボタンを押せば終わらせることが出来ます。

停止

終わりに

一番簡単な Electronアプリ が完成しました。

次回は、Electronアプリ をパッケージングして 配布できるようにします。

あとは、もう少し凝ったことをやってみたいと思っています。

参考

Documentation | Electron
Guides and API reference documentation for the latest Electron release
タイトルとURLをコピーしました