electron-vue 热更新后 自动跳转应用窗口功能怎么关闭?

发布于 2022-09-12 13:13:18 字数 109 浏览 14 评论 0

使用了 electron-vue 脚手架 应该是自动安装了热更新模块,
导致每次代码编辑到一半 然后自动跳转到最新的应用窗口 每次都要切换很麻烦...有没有 关闭这个跳转应用窗口功能的....求大佬

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

欢你一世 2022-09-19 13:13:18

看样子,你应该是编辑器自动保存导致electron更新的,你可以尝试将你的编辑器的自动保存功能关闭, 如果你一定要改程序的话

// .electron-vue/dev-run.js  80行左右
function startMain () {
  return new Promise((resolve, reject) => {
    mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main)

    const compiler = webpack(mainConfig)

    compiler.plugin('watch-run', (compilation, done) => {
      logStats('Main', chalk.white.bold('compiling...'))
      hotMiddleware.publish({ action: 'compiling' })
      done()
    })

    compiler.watch({}, (err, stats) => {
      if (err) {
        console.log(err)
        return
      }

      logStats('Main', stats)

      if (electronProcess && electronProcess.kill) {
        manualRestart = true
        process.kill(electronProcess.pid) // 代码发生变化后,杀死electron进程
        electronProcess = null
        startElectron() // 重新生成一个新的进程

        setTimeout(() => {
          manualRestart = false
        }, 5000)
      }

      resolve()
    })
  })
}

你可以将process.kill(electronProcess.pid)startElectron()方法换为在方法compiler.watch外通过监听ctrl+s或者通过主进程和渲染进程通信,决定你什么时候来刷新主进程,思路就是这么一个思路,你先自己尝试下,有问题可以继续问,如果觉得答案不错,请采纳

================= 分割线 ==================

你可以通过globalShortcut来监控全局的快捷键,通过ctrl+s来保存,但是这么做的话有个缺陷,你高频的ctrl+s(可能只有我喜欢连续点击ctrl+s),会导致部分electron进程杀不死,从而占用大量内存导致系统卡顿,所以你要密切的关注任务管理器

关于杀进程这个,我的处理是

const { exec } = require("child_process");

exec("taskkill /f /im electron.exe", (err) => {
  if (!err) startElectron();
})

点击查看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文