mirror of
https://gitee.com/dromara/electron-egg.git
synced 2026-05-14 19:52:10 +08:00
动态端口,统一config
This commit is contained in:
105
main.js
105
main.js
@@ -1,25 +1,20 @@
|
||||
const {app, BrowserWindow, Menu, shell} = require('electron')
|
||||
const path = require('path')
|
||||
const getPort = require('get-port')
|
||||
const eggLauncher = require('./electron/lanucher')
|
||||
const setup = require('./electron/setup')
|
||||
const config = require('./electron/config').get()
|
||||
const electronConfig = require('./electron/config')
|
||||
const storage = require('./electron/storage')
|
||||
|
||||
// Initialize
|
||||
setup()
|
||||
// return
|
||||
|
||||
//return
|
||||
// 主窗口
|
||||
// main window
|
||||
global.MAIN_WINDOW = null
|
||||
|
||||
for (let i = 0; i < process.argv.length; i++) {
|
||||
const tmpArgv = process.argv[i]
|
||||
if (tmpArgv.indexOf('--env=') !== -1) {
|
||||
config.egg.env = tmpArgv.substr(6)
|
||||
}
|
||||
}
|
||||
|
||||
if (process.mas) app.setName('electron-egg')
|
||||
|
||||
// Open url with the default browser
|
||||
app.on('web-contents-created', (e, webContents) => {
|
||||
webContents.on('new-window', (event, url) => {
|
||||
event.preventDefault()
|
||||
@@ -27,45 +22,11 @@ app.on('web-contents-created', (e, webContents) => {
|
||||
});
|
||||
});
|
||||
|
||||
async function createWindow () {
|
||||
MAIN_WINDOW = new BrowserWindow(config.windowsOption)
|
||||
|
||||
// if (process.platform === 'linux') {
|
||||
// windowOptions.icon = path.join(__dirname, '/assets/app-icon/png/512.png')
|
||||
// }
|
||||
|
||||
if (config.egg.env === 'prod') {
|
||||
//隐藏菜单
|
||||
Menu.setApplicationMenu(null)
|
||||
}
|
||||
|
||||
// loding页
|
||||
MAIN_WINDOW.loadURL(path.join('file://', __dirname, '/app/public/loading.html'))
|
||||
|
||||
// egg服务
|
||||
setTimeout(function(){
|
||||
startServer(config.egg)
|
||||
}, 100)
|
||||
|
||||
return MAIN_WINDOW
|
||||
}
|
||||
|
||||
async function startServer (options) {
|
||||
let startRes = null
|
||||
options.port = await getPort({port: options.port})
|
||||
ELog.info('config.egg', options)
|
||||
startRes = await eggLauncher.start(options).then((res) => res, (err) => err)
|
||||
ELog.info('startRes:', startRes)
|
||||
if (startRes === 'success') {
|
||||
let url = 'http://localhost:' + options.port
|
||||
MAIN_WINDOW.loadURL(url)
|
||||
|
||||
return
|
||||
}
|
||||
app.relaunch()
|
||||
}
|
||||
|
||||
async function initialize () {
|
||||
|
||||
// dynamic port
|
||||
await storage.setDynamicPort();
|
||||
|
||||
app.whenReady().then(() => {
|
||||
createWindow()
|
||||
app.on('activate', function () {
|
||||
@@ -83,4 +44,50 @@ async function initialize () {
|
||||
})
|
||||
}
|
||||
|
||||
async function createWindow () {
|
||||
// argv
|
||||
const eggConfig = electronConfig.get('egg')
|
||||
for (let i = 0; i < process.argv.length; i++) {
|
||||
const tmpArgv = process.argv[i]
|
||||
if (tmpArgv.indexOf('--env=') !== -1) {
|
||||
eggConfig.env = tmpArgv.substr(6)
|
||||
}
|
||||
}
|
||||
|
||||
MAIN_WINDOW = new BrowserWindow(electronConfig.get('windowsOption'))
|
||||
|
||||
// if (process.platform === 'linux') {
|
||||
// windowOptions.icon = path.join(__dirname, '/assets/app-icon/png/512.png')
|
||||
// }
|
||||
|
||||
if (eggConfig.env === 'prod') {
|
||||
// hidden menu
|
||||
Menu.setApplicationMenu(null)
|
||||
}
|
||||
|
||||
// loding page
|
||||
MAIN_WINDOW.loadURL(path.join('file://', __dirname, '/app/public/loading.html'))
|
||||
|
||||
// egg server
|
||||
setTimeout(function(){
|
||||
startServer(eggConfig)
|
||||
}, 100)
|
||||
|
||||
return MAIN_WINDOW
|
||||
}
|
||||
|
||||
async function startServer (options) {
|
||||
let startRes = null
|
||||
ELog.info('[main] [startServer] options', options)
|
||||
startRes = await eggLauncher.start(options).then((res) => res, (err) => err)
|
||||
ELog.info('startRes:', startRes)
|
||||
if (startRes === 'success') {
|
||||
let url = 'http://localhost:' + options.port
|
||||
MAIN_WINDOW.loadURL(url)
|
||||
|
||||
return true
|
||||
}
|
||||
app.relaunch()
|
||||
}
|
||||
|
||||
initialize()
|
||||
Reference in New Issue
Block a user