vue+electron 配合使用

创建vue项目

安装vue_cli 3.x 手脚架

  • npm install -g @vue/cli

打开可视化界面创建vue项目

  • vue ui

安装Electron

  • npm install electron

创建主程序入口(main.js)

const {app, BrowserWindow} =require('electron');//引入electron
let win;
let windowConfig = {
  width:800,
  height:600
};//窗口配置程序运行窗口的大小
function createWindow(){
  win = new BrowserWindow(windowConfig);//创建一个窗口
  win.loadURL(`file://${__dirname}/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html
  win.webContents.openDevTools();  //开启调试工具
  win.on('close',() => {
    //回收BrowserWindow对象
    win = null;
  });
  win.on('resize',() => {
    win.reload();
  })
}
app.on('ready',createWindow);
app.on('window-all-closed',() => {
  app.quit();
});
app.on('activate',() => {
  if(win == null){
    createWindow();
  }
});

修改package.json 文件

{
  "name": "vue_electron",
  "description": "测试",
  "version": "1.0.0",
  "private": true,
  "main": "main.js",
  "description":"测试",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "pack": "electron-builder --dir",
    "dist": "electron .",
    "postinstall": "electron-builder install-app-deps"
  },
  "build": {
    "electronVersion": "1.8.4",
    "win": {
      "requestedExecutionLevel": "highestAvailable",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ]
    },
    "appId": "测试",
    "artifactName": "demo-${version}-${arch}.${ext}",
    "nsis": {
      "artifactName": "demo-${version}-${arch}.${ext}"
    }
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "vue-template-compiler": "^2.6.11"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "rules": {}
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

运行 Electron 开发、调试

   npm run dist

分包生成 .exe 文件

    npm run pack

如果打开发现空白可能需要调整下配置

  • 根目录下新建一个 vue.config.js 文件 并复制下面内容即可
module.exports = {
 publicPath: "./" 
};
  • 如果还不行,可以看看你项目是不是选择history路由模式,打开路由的配置文件(index.js)需要注释mode这一行
const router = new VueRouter({
 // mode: "history",
 base: process.env.BASE_URL,
 routes
});

文章到此结束,如有疑问可以私信,想单独创建Electron 应用 或 在electron调试时实现编写代码热更新

点击跳转

注意:默认生成的vue项目会默认生成 dependencies 这一项配置,需要删除,否则打包Electron 会报错

"dependencies": {
    "core-js": "^3.6.5",
    "electron": "^13.1.2",
    "electron-builder": "^22.11.7",
    "electron-forge": "^5.2.4",
    "vue": "^2.6.11"
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值