しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Electron の TypeScript で Hello world

※ これは 2019/11/29 時点の node.js v13.2.0 Electron v7.1.2 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

前回は普通に Electron で Hello world してみましたが、今回はかんたんにできるらしい TypeScript への書き換えで Hello world してみます

TypeScript で Electron !

前回と同じようにまずは VS Code で適当なフォルダを開き、ターミナルで下記コマンドを実行

mkdir tshello
cd tshello
npm init

前回と同じく Enter 連打ですべてデフォルト設定

package.json が生成されるので、下記のように少し書き換え

{
  "name": "tshello",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "tsc",
    "start": "npm run build && electron ./index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "electron": "^7.1.4",
    "typescript": "^3.7.3"
  }
}

scripts に build と start の行を追加しました

次に下記コマンドをターミナルでたたいて Electron と TypeScript の必要環境をインストール

npm install electron
npm install -g typescript

※ TypeScript 開発環境のインストールは PC 全体で共有するので、初回だけで OK

インストールが終わったら、下記コマンドをターミナルでたたいて TypeScript プロジェクト設定初期化

tsc --init

初期化が成功すると tsconfig.json が生成されました

次に index.html を下記のように記述

<!DOCTYPE html>
<html>
    <body>
        <h1>Hello electron!</h1>
    </body>
</html>

前回と全く一緒!

さらに index.ts も作ります

// electron の必要ライブラリをインポート
import {app, BrowserWindow} from 'electron'

// 一時変数用意
let mainWindow: Electron.BrowserWindow | null = null

app.on('ready', () => {
    
    // メインウィンドウを生成
    mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true,
        },
        width: 800,
        height: 600,
    })

    // ウィンドウが閉じたら後片付けする
    mainWindow.on('closed', () => {
        mainWindow = null
    })
    
    // index.hrml をウィンドウに表示
    mainWindow.loadURL('file://' + __dirname + '/index.html')
})

import と変数の宣言くらいしか変わってませんが TypeSciprt です

最後にターミナルから次のコマンドを実行!

npm start

ウゴイタアアアアアァァァァ!!

TypeScript が動く

静的型付けだー!