メインコンテンツへ飛ぶ

概要

Node.js と Electron API を使用する方法。

Node.js の組み込みモジュール のすべては、Electron およびサードパーティの Node モジュール (ネイティブモジュール を含む) でも完全にサポートされています。

Electron はネイティブのデスクトップアプリケーションを開発するためのモジュールもいくつか追加しています。 モジュールの中には、メインプロセスでしか利用できないものもあれば、レンダラープロセス (ウェブページ) でしか利用できないもの、どちらのプロセスタイプでも利用できるものもあります。

基本的なルールはとしては、モジュールが GUI または低レベルのシステムに関わる場合、メインプロセスでのみ使用可能にする必要があります。 これらのモジュールを使いこなすには、メインプロセスとレンダラープロセスのスクリプトの概念に精通している必要があります。

メインプロセスのスクリプトは、通常の Node.js スクリプトとほぼ同じです。

const { app, BrowserWindow } = require('electron')
let win = null

app.whenReady().then(() => {
win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
})

レンダラープロセスは、nodeIntegration が有効になっている場合は以下のように Node のモジュールを使用できるという特別な機能を除いて、通常のウェブページと変わりません。

<!DOCTYPE html>
<html>
<body>
<script>
const fs = require('fs')
console.log(fs.readFileSync(__filename, 'utf8'))
</script>
</body>
</html>

分割代入

0.37から、分割代入 を使用して組み込みモジュールを使いやすくすることができます。

const { app, BrowserWindow } = require('electron')

let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})

electron モジュール全体が必要な場合は、それを require してから、electron から個々のモジュールにアクセスするために分割することができます。

const electron = require('electron')
const { app, BrowserWindow } = electron

let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})

これは以下のコードと同等です。

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let win

app.whenReady().then(() => {
win = new BrowserWindow()
win.loadURL('https://github.com')
})