Electron アプリに electron-store で設定ファイル機能を追加する場合の example & tips 的なメモ
yarn add electron-store
public/conf.js
とか適当に作る例:
const path = require("path"); const store = require("electron-store"); const store_conf = { // https://www.npmjs.com/package/electron-store#schema schema: { // 'foo'でアクセスできる foo: { type: typeof 0, maximum: 100, minimum: 1, default: 50, }, // 'bar'でアクセスできる bar: { type: typeof "", format: "url", default: "https://example.com/", }, // 'window' でアクセスできる Object window: { type: typeof {}, // Object は明示的に default: {} を与えておかないと子要素のdefaultがあっても取り出せないとか起こるので注意します default: {}, // Object の子要素は properties で定義します properties: { // 'window.width' でアクセスできる width: { type: typeof 0, maximum: Number.MAX_SAFE_INTEGER, minimum: 480, default: 960, }, // 'window.height' でアクセスできる height: { type: typeof 0, maximum: Number.MAX_SAFE_INTEGER, minimum: 270, default: 540, }, }, }, }, // https://www.npmjs.com/package/electron-store#migrations migrations: {}, }; module.exports = new store(store_conf);
- Note:
public/conf.js
を使う例( public/electron.js
エントリーポイントを想定 ):
const electron = require("electron"); const app = electron.app; const browser_window = electron.BrowserWindow; const conf = require("./conf.js"); let main_window; function createWindow() { app.allowRendererProcessReuse = false; main_window = new browser_window({ width: conf.get("window.width"), height: conf.get("window.height"), webPreferences: { preload: `${__dirname}/preload.js` }, }); // (...abbr...; 後略)