使用electron将vue-cli3.x项目打包为桌面应用

简介: 使用electron将vue-cli3.x项目打包为桌面应用

我有个模版项目是用vue-cli3.x开发的,测试部署已经没问题,突发奇想,能不能打包成exe文件,在桌面运行,开始鼓捣。

1.先将项目打包

yarn build

复制

2.安装electron和electron-packager

yarn add electronyarn 
add electron-packager

复制

3.dist目录新建main.js文件,内容如下:

const {  app,  BrowserWindow,  Menu} = require('electron')
function createWindow() {  // 去掉菜单
  Menu.setApplicationMenu(null)
  // 创建浏览器窗口
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {      nodeIntegration: true
    }  })  // 并且为你的应用加载index.html
  win.loadFile('index.html')
  // 打开开发者工具
  // win.webContents.openDevTools()
}// Electron会在初始化完成并且准备好创建浏览器窗口时调用这个方法
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(createWindow)
//当所有窗口都被关闭后退出
app.on('window-all-closed', () => {
  // 在 macOS 上,除非用户用 Cmd + Q 确定地退出,
  // 否则绝大部分应用及其菜单栏会保持激活。
  if (process.platform !== 'darwin') {
    app.quit()  }})app.on('activate', () => {
  // 在macOS上,当单击dock图标并且没有其他窗口打开时,
  // 通常在应用程序中重新创建一个窗口。
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()  }})// 您可以把应用程序其他的流程写在在此文件中
// 代码 也可以拆分成几个文件,然后用 require 导入。

复制

注:可以从electron官网clone例子,复制main.js

4.dist目录新建package.json文件,内容如下:

{
  "name": "electron-quick-start",
  "version": "1.0.0",
  "description": "A minimal Electron application",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "package": "electron-packager . HelloWorld --platform=win32 --arch=x64 --icon=computer.ico --out=./out --asar --app-version=0.0.1 --overwrite --ignore=node_modules"
  },  "repository": "https://github.com/electron/electron-quick-start",
  "keywords": [
    "Electron",
    "quick",
    "start",
    "tutorial",
    "demo"
  ],  "author": "GitHub",
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^9.0.0"
  },  "dependencies": {
    "electron-packager": "^14.2.1"
  }}

复制

注:可以从electron官网clone例子,复制package.json

5.在项目的根目录的package.json增加一条启动命令

image.png

"scripts": {
    "serve": "vue-cli-service serve --copy",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "electron_dev": "yarn build && electron main.js",
    "electron_build": "electron-packager ./dist helloworld --platform=win32 --arch=x64 --overwrite"
  },

复制

注:

  • sourcedir: 资源(dist/package.json)路径,在本例中既是./dist/
  • appname:打包出的exe名称,这里取名为helloworld
  • platform :平台名称(windows是win32)
  • arch: 版本,本例为x64

6.生成exe

yarn  electron_build

复制

可以看到项目目录中多了一个helloworld-win32-x64文件,找到里面的helloworld.exe运行即可。

image.png

运行效果

image.png

相关文章
|
15天前
|
缓存 JavaScript 前端开发
高效打造跨平台桌面应用:Electron加载服务器端JS
【9月更文挑战第17天】Electron 是一个基于 Chromium 和 Node.js 的开源框架,允许使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用。加载服务器端 JS 可增强应用灵活性,实现代码复用、动态更新及实时通信。通过 HTTP 请求、WebSocket 或文件系统可实现加载,但需注意安全性、性能和兼容性问题。开发者应根据需求选择合适方法并谨慎实施。
|
24天前
|
前端开发
vue3+ts项目中使用mockjs
vue3+ts项目中使用mockjs
247 58
|
7天前
|
JavaScript
vue项目中使用vue-router进行路由配置及嵌套多级路由
该文章详细说明了如何在Vue项目中配置和使用vue-router进行单页面应用的路由管理,包括设置嵌套路由和实现多级路由导航的示例。
vue项目中使用vue-router进行路由配置及嵌套多级路由
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
vue尚品汇商城项目-day07【vue插件-50.(了解)表单校验插件】
12 4
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【51.路由懒加载】
vue尚品汇商城项目-day07【51.路由懒加载】
13 4
|
3天前
|
JavaScript
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
vue尚品汇商城项目-day07【vue插件-54.(了解)生成二维码插件】
9 2
|
4天前
|
API UED
如何实现Vue2项目升级Vue3?
如何实现Vue2项目升级Vue3?
12 1
|
7天前
|
JavaScript
vue项目中引入阿里图标iconfont
该文章指导如何在Vue项目中引入并使用阿里图标库Iconfont,包括图标的选取、下载配置文件及在项目中引入和使用图标的具体步骤。
|
16天前
|
JavaScript 前端开发
Vue项目使用px2rem
Vue项目使用px2rem
|
20天前
|
JavaScript 前端开发
Vue项目使用px2rem
Vue项目使用px2rem

相关实验场景

更多
下一篇
无影云桌面