const child_process = require('child_process') import * as dotenv from 'dotenv' import * as fs from 'fs' const NODE_ENV = process.env.NODE_ENV || 'development' const envFiles = [ `.env.${NODE_ENV}` ] for (const file of envFiles) { const envConfig = dotenv.parse(fs.readFileSync(file)) for (const k in envConfig) { process.env[k] = envConfig[k] } } export default function GvaPositionServer() { return { name: 'gva-position-server', apply: 'serve', configureServer(server) { server.middlewares.use((req, res, next) => { if (req._parsedUrl.pathname === '/gvaPositionCode') { const path = req._parsedUrl.query && req._parsedUrl.query.split('=')[1] if (path && path !== 'null') { if (process.env.VITE_EDITOR === 'webstorm') { const linePath = path.split(':')[1] const filePath = path.split(':')[0] const platform = os() if (platform === 'win32') { child_process.exec(`webstorm64.exe --line ${linePath} ${filePath}`) } else { child_process.exec(`webstorm64 --line ${linePath} ${filePath}`) } } else { child_process.exec('code -r -g ' + path) } } } next() }) } } } function os() { 'use strict' const os = require('os') const platform = os.platform() switch (platform) { case 'darwin': return 'MacOSX' case 'linux': return 'Linux' case 'win32': return 'Windows' default: return '无法确定操作系统!' } }