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