Electron で最初のアプリケーションを作り、簡易的な方法で実行します。
Linux については、Ubuntu、Fedora、CentOS、Mint で正常動作しますが、 Debian では動作しません。
Electronは、一つのアプリケーションを、一つのディレクトリにまとめて管理していきます。 コマンドプロンプトかターミナルを起動して次のようにコマンドします。
// Documents ディレクトリなどに Electron 用のディレクトリなどを作り
// その中に Hello アプリケーション用のディレクトリを作ります。
cd Documents
mkdir Electron
cd Electron
mkdir Hello
cd Hello
// Hello ディレクトリに設定ファイルを作り、Electron と Electron-Builder をインストールします。
npm init -y
npm i -D electron
npm i -D electron-builder
// i は install の略記、-Dは --save-dev の略記です。-D もしくは --save-dev は、パッケージをそのディレクトリだけにインストールします。
// なお electron-builder は、この章では不要ですが、次の章で必要なのでインストールしておきました。
Hello ディレクトリに package.json というファイルができ上がっています。 このファイルにアプリケーションの設定をいろいろと記述していきます。
// 最初の状態
{
"name": "Hello",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"electron": "^13.1.4",
"electron-builder": "^22.11.7"
}
}
// 変更後
// "scipts": { を、"start": "electron ." に変更しています。
{
"name": "Hello",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "electron ."
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"electron": "^13.1.4",
"electron-builder": "^22.11.7"
}
}
Hello ディレクトリに、次のような index.js ファイルを追加します。
const { app, BrowserWindow } = require('electron');
let window;
app.on('ready', () => {
window = new BrowserWindow({
widht: 700,
height: 350,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
}
});
window.loadFile('index.html');
});
全体的なコード説明は、一旦割愛しまが、 Electron のオフィシャルサイトでは、webPreferences: { のボディを preload: path.join(__dirname, 'preload.js') としています。これはちょっとした問題を回避するための手段ですが、 わざわざ preload.js という別のファイルを作成して、 そこにスクリプトの一部を記述しなければならず、少し面倒です。上記のように nodeIntegration: true, と contextIsolation: false とするほうが簡単です。
Hello ディレクトリに次のような index.html ファイルを追加します。
<!DOCYTPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Hello</title>
</head>
<body>
<h1>Hello World!</h1>
<p>
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>.</p>
</body>
</html>
title タグに記述した名前がアプリケーションウィンドウのタイトルになります。
コマンドプロンプトもしくはターミナルで Hello ディレクトに移動し、 次のようにコマンドします。
npm start
Parallels Desktop for Mac で Linux を実行している場合、通常の設定では、 実行したアプリケーションは真っ黒なウィンドウの右上に白い矩形が表示されるだけです。
お使いの Linux ゲスト OS で次の設定をしてください。
構成... → ハードウェア → グラフィック → 詳細設定で、 3D アクセラレーションをオフにします。
これで Electron アプリケーションが、正常に表示されるようになります。