项目的模板是使用electron-vue-template

一: 处理bat相关的静态资源

项目的打包依赖是使用 electron-builder,所以相关的静态资源可以放在项目根目录下的resources(需要新建)

假如保存的bat在目录 resources/test 下

打包的配置:
package.json

{
  ....
  "build": {
    "extraResources": [
      {
        "from": "resources/test",
        "to": "test"
      }
    ],
    ....
  }
  ....
}

二: 引用bat

src/main/services/test.js

const { exec } = require('child_process')
const { dialog, app } = require('electron')
const path = require('path')
const isDev = process.env.NODE_ENV === 'development'

// 启动服务
export default function openServer() {
   const cwd = isDev
     ? path.resolve(__dirname, '../../../resources/test/')
     : path.resolve(app.getAppPath(), '../test/')
     exec('example.bat', { cwd }, (error, stdout, stderr) => {
       if (error) {
         console.error(`执行的错误: ${JSON.stringify(error)}`)
         dialog.showMessageBox({
           type: 'error',
           title: '启动服务失败,请重启软件试下',
           message: JSON.stringify(error),
           buttons: ['确认']
         })
       }
     })
}

三:在主进程调用bat

src/main/services/main.js

import openServer from './test'
....
function initWindow() {
  openServer()  // 在启动时调用
  ....
}
....
Logo

前往低代码交流专区

更多推荐