Electron でアプリケーション

時計の例

  1. インストール(node.js)

    scoop install nodejs
  2. アプリケーションフォルダ

    mkdir app1      -- 名前は何でもいい
    cd app1
    npm init -y
    npm i -D electron

    package.json(initで作られる)をはじめとして沢山のファイルが作られる

  3. 起動するか確認

    node_modules¥.bin¥electron --version
  4. 外枠のHTMLファイル(必要最小限)

    <!doctype html>
    <div>起動した</div>
  5. 起動用JSファイル

    const {app, BrowserWindw, BrowserWindow} = require('electron')
    function createWindow() {
        const w = new BrowserWindow({
            width: 500,
            height: 150,
            webPreferences: {
                nodeIntegration:false
            }
        })
        w.loadFile('index.html')
    }
    app.whenReady().then(createWindow)
  6. 起動スクリプトの準備と、起動

  7. 時計の動作(とスタイルも設定しておく)

    <!doctype html>
    <div id='clk'></div>
    <script>
      const clk=document.getElementById('clk')
      setInterval(()=>clk.textContent=new Date().toLocaleTimeString(),1000)
    </script>
    <style>
    body {background-color:#b0c0d0}
    div {font-size: 100px}
    </style>

配布可能なプログラムにする

いくつかの方法はあるようだが代表的な手順を紹介する

  1. electron-builder をインストール

    npm i -D electron-builder
  2. ビルド用スクリプトを用意する(直接REPLに入れてもいい)

    const builder = require('electron-builder');
    
    builder.build({
        config: {
            'appId': 'local.test.app1',
            'win':{
                'target': {
                    'target': 'zip',
                    'arch': [
                        'x64',
                        'ia32',
                    ]
                }
            }
        }
    });

    (この例は qiita の1記事 から借用した)

    保存したファイル名を例えば build-win.js とすると、

    node build-win

    で呼び出せる。

  3. 確認:dist フォルダに .exe ファイルが作られている筈