使用 Vue CLI Plugin Electron Builder 开发 Electron 应用程序时遇到的问题总结

问题一 打开后页面空白

1 问题描述

vue-electron 项目本地在进行开发预览时显示正常,打包且在 win11 系统安装完成后打开页面出现白屏。

在这里插入图片描述

2 引发原因

Electron 只有在路由模式为 hash 的情况下才能正常运行。
在这里插入图片描述

3 解决方法

Common Issues | Vue CLI Plugin Electron Builder (nklayman.github.io)

router/index.js 文件中将 createRouter 修改为 hash 模式。

const router = createRouter({
  - history: createWebHistory(process.env.BASE_URL),	//原来的代码,删除这一行
  + history: createWebHashHistory(process.env.BASE_URL),//增加该行
  routes
})

问题二 打包后请求地址错误

1 问题描述

Vue CLI Plugin Electron Builder 可以将 Vue.js 项目构建为 Electron 桌面应用程序。使用其开发 Ubuntu 桌面应用程序时,在前端 vue.config.js 中配置了跨域,使用 npm run electron:serve 命令在本地运行时请求远程服务器可以成功响应,但是使用 npm run electron:build 命令构建打包项目后,请求远程服务器失败,控制台详情如下:
在这里插入图片描述

2 引发原因

项目在开发时使用了 webpack 脚手架,启动了 webServer 提供的 http 服务,而且有代理,当运行 npm run electron:serve 时,可以直接加载 http://localhost:8080,在应用程序中就可以成功请求。当项目使用 npm run electron:build 命令构建打包后,成为桌面应用程序,这时没有 http 服务支撑,当发送 ajax 请求时,没有所谓的 baseURL 指向某一个 http://ip:port 的 url 前缀,最后这个请求 url 就会变为如图所示的 app://./api/xxx

3 解决方法

删除或注释掉 vue.config.js 中的跨域配置,恢复封装的统一请求工具类中的 baseURL ,在 background.js 中的 createWindow() 函数中添加配置 webSecurity: false 即可。(参考文章

  1. 删除或注释掉 vue.config.js 中的跨域配置

    // vue.config.js
    module.exports = {
    	// 其他配置...
      // 将以下代码删除或注释掉
      // devServer: {
      //   proxy: {
      //     '/projectName/api/version': {
      //       target: 'https://domainName:port',
      //       changeOrigin: true
      //       // pathRewrite: {
      //       //   '^/projectName/api/version': ''
      //       // }
      //     }
      //   }
      // }
    }
    
  2. 恢复封装的统一请求工具类中的 baseURL

    // request.js
    // const baseURL = '/projectName/api/version'
    const baseURL = 'https://domainName:port/projectName/api/version'
    
  3. 在 background.js 中的 createWindow() 函数中添加如下配置

    // background.js
    async function createWindow () {
      Menu.setApplicationMenu(null)
      // Create the browser window.
      const win = new BrowserWindow({
        frame: true,
        resizable: true,
        width: screen.getPrimaryDisplay().workAreaSize.width,
        height: screen.getPrimaryDisplay().workAreaSize.height,
        webPreferences: {
    
          // 添加此行配置  
          webSecurity: false,
    
          // Use pluginOptions.nodeIntegration, leave this alone
          // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
          nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION,
          contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
        }
      })
    } 
    

附录

1 Vue 项目前端配置跨域方法

  1. 在 vue.config.js 中添加以下配置

    // vue.config.js
    module.exports = {
    	// 其他配置...
      // 添加以下代码
      devServer: {
      	proxy: {
        	'/projectName/api/version': {
          		target: 'https://domainName:port',
            	changeOrigin: true
            	// pathRewrite: {
              //   '^/projectName/api/version': ''
              // }
          }
        }
      }
    }
    
  2. 修改封装的统一请求工具类中的 baseURL

    // request.js
    // const baseURL = 'https://domainName:port/projectName/api/version'
    const baseURL = '/projectName/api/version'
    

2 Electron 开启开发者调试工具的配置

在 background.js 中的 createWindow () 函数最后添加:

win.webContents.openDevTools()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vue-cli-plugin-electron-builder 是一个基于 Vue CLIElectron 应用程序快速开发插件,可以方便地创建和构建 Electron 应用程序。在构建 Electron 应用程序的过程中,需要准备好一套完整的开发环境,其中 Linux 环境是一个重要的平台,一个良好的 Linux 环境能够为应用程序开发工作提供更好的支持。 在 Linux 环境下使用 vue-cli-plugin-electron-builder,需要首先安装好 Node.js 和相关的模块,以及 Electron 和其他必要的开发工具。在安装完成后,可以使用 Node.js 提供的 npm 命令将 vue-cli-plugin-electron-builder 安装到开发环境中。 在 Linux 环境中使用 vue-cli-plugin-electron-builder 进行开发,需要准备好项目的配置文件,其中包含了一些基本的配置参数,例如应用程序的名称、版本、图标、启动页面等等。同,在配置文件中还需要设置一些参数来指定应用程序的构建方式,例如应用程序的输出目录、资源文件的文件名、构建过程中产生的日志文件名等等。 在配置完成后,可以使用 vue-cli-plugin-electron-builder 提供的命令来启动开发服务器,预览应用程序的运行效果,并进行开发工作。在应用程序开发完成后,可以使用同样的命令进行构建和打包工作,生成可执行文件和安装包,以便在 Linux 平台中安装和运行应用程序。 总之,在 Linux 环境中使用 vue-cli-plugin-electron-builder 进行开发,需要遵循一定的开发规范和流程,同要根据具体的业务需求选择合适的配置和工具,才能最终实现高质量的应用程序开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vesuvius688

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值