const { app } = require('electron'); const path = require('path'); const fs = require('fs'); const Utils = require('../utils'); const Ps = require('../ps'); const EE = require('../ee'); const UtilsCore = require('../core/lib/utils'); const Loader = require('../loader'); const UtilsPargv = require('../utils/pargv'); class ElectronEgg { constructor(mode) { this.mode = mode || 'framework'; this._create(); } /** * create ElectronEgg app */ _create() { if (!Ps.verifyMode(this.mode)) { throw new Error(`The mode supports only (framework | module) !`); } Ps.initMode(this.mode); // env 可能为空 const argsObj = UtilsPargv(process.argv); let isDev = false; if ( argsObj['env'] == 'development' || argsObj['env'] === 'dev' || argsObj['env'] === 'local' ) { isDev = true; } // module mode if (Ps.isModuleMode()) { const { Application } = EE; new Application(); return; } let baseDir = path.join(app.getAppPath(), 'electron'); if (!isDev && Utils.isEncrypt(app.getAppPath())) { baseDir = Ps.getEncryptDir(app.getAppPath()); } let indexFile = path.join(baseDir, 'index'); indexFile = Loader.resolveModule(indexFile); if (!fs.existsSync(indexFile)) { throw new Error(`The ${indexFile} file does not exist`); } const EEApp = UtilsCore.loadFile(indexFile); EE.app = new EEApp(); } } module.exports = ElectronEgg;