LoginSignup
5
5

More than 5 years have passed since last update.

DashboardのテンプレートAdminLTEをElectronで動かす

Posted at

概要

ElectronでデスクトップアプリとしてDashboardを作ってみようと思います。Dashboardのテンプレートを探してAdminLTEが良さそうなのでこれをElectronで動かしてみました。

実行環境

  • Windows10
  • Node.js v10.15.3

AdminLTEのダウンロード

AdminLTEのサイトからAdminLTE 2.4.10をダウンロードして解凍します。

Electronのインストール

解凍したAdminLTEのフォルダに移動してelectronのインストール

AdminLTE-2.4.10> npm install electron --save-dev

package.jsonの変更

main項目の変更、script項目の追加

package.json
  "main": "main.js",
  "scripts": {
    "start": "./node_modules/.bin/electron ."
  },

main.jsの追加

electronのmainのテンプレートであるmain.jsを追加します。コードのコメントは全て削除しました。

main.js

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

let mainWindow

function createWindow() {
  mainWindow = new BrowserWindow({show:false, backgroundColor: '#FFF', width: 800, height: 600, frame:true})

  mainWindow.loadFile('index.html')

  mainWindow.once('ready-to-show', () => { mainWindow.show() })
  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

app.on('ready', createWindow)

app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', function () {
  if (mainWindow === null) {
    createWindow()
  }
})

実行、しかしエラーでした

次のコマンドで実行します

AdminLTE-2.4.10> npm start

しかし、Salesのグラフなど画面の一部が表示されませんでしたので、Developer Toolsで確認しますと次ようなエラーが確認できました。これはjQueryに関してエラーになっているようです。調べるとQIITAに「ElectronでjQueryがundefinedになる」があり、ElectronのFAQにもありました。
adminlte1.png

main.jsを修正して再度実行

今回はnew BrowserWindownodeIntegration: falseを追加しました。

  mainWindow = new BrowserWindow({
    show: false, backgroundColor: '#FFF', width: 800, height: 600, frame: true,
    webPreferences: {
      nodeIntegration: false
    }
  })

再度実行

AdminLTE-2.4.10> npm start

今度はちゃんと表示されました。

adminlte2.png

最後に

とりあえず、jQuery問題はありましたが簡単に動いてしまいました。今度はChartsTablesのメニューのところをデータベースからデータを取ってきて表示してみようと思います。ただし、nodeIntegration: falseとしたのでRendererプロセスからNode.jsのコードがそのままでは使えません。preloadipcを使えるようにしてMainプロセス側でデータベースにアクセスしてデータをipc経由で受け取るか、あるいはデータベースのドライバをpreloadで使えるようにしないといけないようです。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5