node.js+electronのインストから「Hello World」出力と配布用の作成

node.jsってヤツを調査していたらjsベースのデスクトップアプリが作れるとか・・・少し寄り道して試してみた

作成日:2017-11-08, 更新日:2017-11-19

流れ

1.node.jsのインスト
2.electronのインスト
3.「Hello World」出力
4-a.アーカイブ化:使い道は不明
4-b.パッケージ化:配布用

環境

・2017/11/08時点
・Win10

node.jsのインスト

https://nodejs.org/download/」から「msi」をダウンロードしてインスト。

「https://nodejs.org/download/」の「release」の中の「v9.1.0」の中に「msi」がいる。

「node-v9.1.0-x64.msi」をDLして、インスト。

electronのインスト

CMDから下記実行

> npm -g install electron-prebuilt

「C:\Users\〇〇〇\AppData\Roaming\npm\node_modules\electron-prebuilt」にインストされる

CMDから下記実行でバージョンの確認等ができる。

> electron

「Hello World」出力

1.適当なフォルダを作る。
2.下準備
3.ファイル作成
4.実行

適当なフォルダを作る

ワークスペース(?)になるフォルダを作成。

ひとまず「sample」という名のフォルダを作成。

下準備

作ったフォルダ(ワークスペース(?))に何かを作る

CMDから下記実行

> cd sample
> npm init -y

※「cd sample」は環境にあわせてPATH修正が必要

実行後、「フォルダ:sample」の中に「package.json」が作られる。
「package.json」を開いて「main」の値を確認

ファイル作成

「package.json」を開いて「main」の値が「index.js」の場合
※「index.js」を実行して「index.html」を読み込む感じのサンプル

▼index.js

'use strict';

// Electronのモジュール
const electron = require("electron");

// アプリケーションをコントロールするモジュール
const app = electron.app;

// ウィンドウを作成するモジュール
const BrowserWindow = electron.BrowserWindow;

// メインウィンドウはGCされないようにグローバル宣言
let mainWindow;

// 全てのウィンドウが閉じたら終了
app.on('window-all-closed', function() {
  if (process.platform != 'darwin') {
    app.quit();
  }
});

// Electronの初期化完了後に実行
app.on('ready', function() {
  // メイン画面の表示。ウィンドウの幅、高さを指定できる
  mainWindow = new BrowserWindow({width: 800, height: 600});
  mainWindow.loadURL('file://' + __dirname + '/index.html');

  // ウィンドウが閉じられたらアプリも終了
  mainWindow.on('closed', function() {
    mainWindow = null;
  });
});

▼index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Sample</title>
</head>
<body>
  <p>Hello World</p>
</body>
</html>

実行

CMDに戻って上の階層にカレントを移してフォルダを実行

> cd ..
> electron sample

アーカイブ化

使い道は不明なため、やる必要ないんじゃないかな・・・。

1.アーカイブ化するためのツールインスト
2.アーカイブ化
3.アーカイブファイルの実行

アーカイブ化するためのツールインスト

アーカイブ化するには「asar」というツールが必要だそうで、インスト。

CMDから下記実行

> npm install -g asar

アーカイブ化

「asar pack 「アプリケーションディレクトリ」 「出力ファイル名」.asar」な感じでCMDから下記実行

> asar pack ./sample ./sample.asar

アーカイブファイルの実行

CMDから下記実行

> electron sample.asar

パッケージ化

配布用。

1.パッケージ化するためのツールインスト
2.パッケージ化
3.配布、実行

パッケージ化するためのツールインスト

パッケージ化するには「electron-packager」というツールが必要

CMDから下記実行

npm i electron-packager -g

パッケージ化

パッケージ化する。下記はMacとWindows向けらしいが、Macで動作確認はしていないので不明。

「electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> --version=<version>」な感じでCMDから下記実行

> electron-packager ./sample sample --platform=darwin,win32 --arch=x64 --electronVersion=1.4.13

■platform
all, linux, win32, darwin のいずれかを選択。複数入れる場合はカンマ区切りで。

■arch
all, ia32, x64 のいずれかを選択。

■electronVersion
Electronのバージョン(1.4.13は2017/11/08時点におけるElectronの最新バージョン)

配布、実行

フォルダごと渡して、中にあるexeファイルを実行。