diff --git a/plugin/preload.js b/plugin/preload.js index 5ce3749..aa45b82 100644 --- a/plugin/preload.js +++ b/plugin/preload.js @@ -221,22 +221,22 @@ if (process.platform !== 'linux') quickcommand.runInTerminal = function(cmdline, } let getCommandToLaunchTerminal = (cmdline, dir) => { - let cd = '' - if (utools.isWindows()) { - let appPath = path.join(utools.getPath('home'), '/AppData/Local/Microsoft/WindowsApps/') - // 直接 existsSync wt.exe 无效 - if (fs.existsSync(appPath) && fs.readdirSync(appPath).includes('wt.exe')) { - cmdline = cmdline.replace(/"/g, `\\"`) - if (dir) cd = `-d "${dir.replace(/\\/g, '/')}"` - command = `${appPath}wt.exe ${cd} cmd /k "${cmdline}"` - } else { - cmdline = cmdline.replace(/"/g, `^"`) - if (dir) cd = `cd /d "${dir.replace(/\\/g, '/')}" &&` - command = `${cd} start "" cmd /k "${cmdline}"` - } - } else { + let cd = '' + if (utools.isWindows()) { + let appPath = path.join(utools.getPath('home'), '/AppData/Local/Microsoft/WindowsApps/') + // 直接 existsSync wt.exe 无效 + if (fs.existsSync(appPath) && fs.readdirSync(appPath).includes('wt.exe')) { cmdline = cmdline.replace(/"/g, `\\"`) - if (dir) cd = `cd ${dir.replace(/ /g, `\\\\ `)} &&` + if (dir) cd = `-d "${dir.replace(/\\/g, '/')}"` + command = `${appPath}wt.exe ${cd} cmd /k "${cmdline}"` + } else { + cmdline = cmdline.replace(/"/g, `^"`) + if (dir) cd = `cd /d "${dir.replace(/\\/g, '/')}" &&` + command = `${cd} start "" cmd /k "${cmdline}"` + } + } else { + cmdline = cmdline.replace(/"/g, `\\"`) + if (dir) cd = `cd ${dir.replace(/ /g, `\\\\ `)} &&` if (fs.existsSync('/Applications/iTerm.app')) { command = `osascript -e 'tell application "iTerm" create window with default profile @@ -527,7 +527,7 @@ window.runCodeInVm = (cmd, callback, userVars = {}) => { let liteErr = e => { if (!e) return - return e.stack.replace(/([ ] +at.+)|(.+\.js:\d+)/g, '').trim() + return e.error ? e.error.stack.replace(/([ ] +at.+)|(.+\.js:\d+)/g, '').trim() : e.message } // 错误处理 @@ -541,7 +541,7 @@ window.runCodeInVm = (cmd, callback, userVars = {}) => { let cbUnhandledError = e => { removeAllListener() console.log('UnhandledError: ', e) - callback(null, liteErr(e.error)) + callback(null, liteErr(e)) } let cbUnhandledRejection = e => { @@ -662,6 +662,9 @@ window.quickcommandHttpServer = () => { } }) httpServer.listen(port, 'localhost'); + httpServer.on('error', err => { + console.log(err) + }) } let stop = () => { httpServer.close() @@ -670,4 +673,4 @@ window.quickcommandHttpServer = () => { run, stop } -} \ No newline at end of file +} diff --git a/src/App.vue b/src/App.vue index 42ad3c4..862ac7a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -33,18 +33,7 @@ export default defineComponent({ }); return; } - // 如果配置了后台服务则开启监听 - if (this.$profile.quickFeatures.apiServer.serverStatus) { - window - .quickcommandHttpServer() - .run( - this.$profile.quickFeatures.apiServer.cmd, - this.$profile.quickFeatures.apiServer.port - ); - console.log("Server Start..."); - } - // 默认主题色 - this.setCssVar("primary", this.$profile.primaryColor); + this.startUp(); // 进入插件 utools.onPluginEnter((enter) => { // 暗黑模式 @@ -76,6 +65,21 @@ export default defineComponent({ this.$utools.DBPRE.CFG + "preferences" ); }, + // 随插件启动执行 + startUp() { + // 如果配置了后台服务则开启监听 + if (this.$profile.quickFeatures.apiServer.serverStatus) { + window + .quickcommandHttpServer() + .run( + this.$profile.quickFeatures.apiServer.cmd, + this.$profile.quickFeatures.apiServer.port + ); + console.log("Server Start..."); + } + // 默认主题色 + this.setCssVar("primary", this.$profile.primaryColor); + }, }, });