chore: src/modules/base/event/app.ts
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
import { CoolEvent, Event } from '@cool-midway/core';
|
||||||
|
import { App, ILogger, IMidwayApplication, Inject } from '@midwayjs/core';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收事件
|
||||||
|
*/
|
||||||
|
@CoolEvent()
|
||||||
|
export class BaseAppEvent {
|
||||||
|
@App()
|
||||||
|
app: IMidwayApplication;
|
||||||
|
|
||||||
|
@Inject()
|
||||||
|
logger: ILogger;
|
||||||
|
|
||||||
|
@Event('onServerReady')
|
||||||
|
async onServerReady() {
|
||||||
|
if (!process['pkg']) return;
|
||||||
|
const port = this.app.getConfig('koa.port') || 8001;
|
||||||
|
this.logger.info(`Server is running at http://127.0.0.1:${port}`);
|
||||||
|
const url = `http://127.0.0.1:${port}`;
|
||||||
|
|
||||||
|
// 使用 child_process 打开浏览器
|
||||||
|
const { exec } = require('child_process');
|
||||||
|
let command;
|
||||||
|
|
||||||
|
switch (process.platform) {
|
||||||
|
case 'darwin': // macOS
|
||||||
|
command = `open ${url}`;
|
||||||
|
break;
|
||||||
|
case 'win32': // Windows
|
||||||
|
command = `start ${url}`;
|
||||||
|
break;
|
||||||
|
default: // Linux
|
||||||
|
command = `xdg-open ${url}`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('url=>', url);
|
||||||
|
exec(command, (error: any) => {
|
||||||
|
if (!error) {
|
||||||
|
this.logger.info(`Application has opened in browser at ${url}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user