Electronで作成したアプリケーションはメインプロセスとレンダラープロセスから構成されています。この二つ部分のデバッグ方法が違います。
Electronのレンダラープロセスがブラウザ(Chrome)のような動きで、ブラウザの開発ツールでHTML、css、javascriptを参照しながら、jsファイルのデバッグを行います。
Electronのメインプロセスがサーバーサイトのようなプログラム(node.js)なので、ネーティブアプリ開発のデバックツールが必要となり、その開発ツールの上でデバッグを行います。
npm install --save-dev devtron
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Main Process",
"type": "node",
"request": "launch",
"env": {"NODE_ENV": "debug"},
"cwd": "${workspaceRoot}",
"program" : "${workspaceRoot}/test_1/main.js",
"runtimeExecutable": "${env:APPDATA}/Roaming/npm/electron",
"windows": {
"runtimeExecutable": "${env:APPDATA}/Roaming/npm/electron.cmd"
},
"console":"integratedTerminal",
"args" : ["src"]
}
]
}
npm install electron -g
electron -v
npx electron
GitHub上のElectron公式アカウントで公開されているElectron API Demosというデモアプリは、基本的なElectron APIのを具体的にどんなことができるのかを知るのに便利だ。よく使うクラスと使い方が、デモの中で解説されているため、これを見ていけばElectronのAPIで何ができるのかが効率的に理解できる。
//デモアプリのディレクトリ内で、以下のコマンドでアプリを起動 electron .
起動途中で以下のエラーが発生するかもしれないです
Error:Cannot find module 'glob'
//任意のディレクトリで以下のコマンドでglobをインストール npm install glob --save
//デモアプリのディレクトリ内で、以下のコマンドでアプリを起動 electron .
npm install electron -g
electron -v
npx electron
sample ├── index.html ├── main.js └── package.json
npm init
いろいろな質問に答えればよいです。ポイントはいかのようです
package name : 任意の名前でよいです。プロジェクトのフォルダ名と違ってもかまわない
entry point : メインプロセスのファイル名(例:main.js)です。何も入力しなければ、index.jsと自動に定義されます。
ほかの項目に何も入力しなくて良いです
{
"name": "op_test",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
}
var electron = require('electron');
var app = electron.app;
var 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'); //ローカルのhtmlを表示
//ウィンドウが閉じられたらアプリも終了
mainWindow.on('closed', function() {
mainWindow = null;
});
});
ここで、メインプロセスの記述が大半です。レンダラープロセスが一行だけ: mainWindow.loadURL('file://' + __dirname + '/index.html');
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ElectronApp</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
単純的に「Hello World」を画面に表示させるだけです
electron .
npm install electron -g
electron -v
npx electron
GitHub上のElectron公式アカウントで公開されているElectron API Demosというデモアプリは、基本的なElectron APIのを具体的にどんなことができるのかを知るのに便利だ。よく使うクラスと使い方が、デモの中で解説されているため、これを見ていけばElectronのAPIで何ができるのかが効率的に理解できる。
//デモアプリのディレクトリ内で、以下のコマンドでアプリを起動 electron .
起動途中で以下のエラーが発生するかもしれないです
Error:Cannot find module 'glob'
//任意のディレクトリで以下のコマンドでglobをインストール npm install glob --save
//デモアプリのディレクトリ内で、以下のコマンドでアプリを起動 electron .
npm install electron -g
electron -v
npx electron