electron-build将vue项目打包成windows桌面端可执行程序

electron-build将vue项目打包成windows桌面端可执行程序

vue项目打包成静态资源

下载安装@vitejs/plugin-legacy

// 保证vue项目打包以后的资源点击就可查看的插件
npm i @vitejs/plugin-legacy

配置vite.config.js(此处用的是vite)

...
import legacy from '@vitejs/plugin-legacy'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
...

export default defineConfig({
  base: './',
  publicPath: './',
  plugins: [
    vue(),
    legacy({
      targets: ['ie>=11'],
      additionalLegacyPolyfills: ['regenerator-runtime/runtime']
    })
  ]
  ...
  ...
})

打包

npm run build

此时打包的vue项目可在资源管理器中直接点击index.html打开
在这里插入图片描述

配置安装electron

安装

npm i --save-dev electron
npm i electron-build -D

在主目录添加文件夹electron
在这里插入图片描述
添加文件main.js (frame参数可设置ture,展示/隐藏菜单栏。win.loadFile为你vue项目打包生成的入口文件)

import { app, BrowserWindow } from 'electron'


function createWindow() {
  // 创建浏览器窗口
  let win = new BrowserWindow({
    width: 1920,
    height: 1080,
    frame: false, // 设置为false以隐藏标题栏和状态栏
    webPreferences: {
      nodeIntegration: true,
      // contextIsolation: false
    }
  })

  // 加载应用的index.html
  win.loadFile('./dist/index.html')
}

app.whenReady().then(createWindow)

package.json编辑信息

{
	  "main": "electron/main.js",
	  "scripts": {
			...
		    "start": "electron-forge start",
		    "build:electron": "electron-builder",
		     "build:win64": "electron-builder --win --x64",
		     ...
	  },

	  "build": {
	    "productName": "name",
	    "appId": "com.example.name",
	    "directories": {
	      "output": "build"
	    },
	    "files": [
	      "dist/**/*",
	      "electron/main.js",
	      "node_modules/**/*",
	      "package.json"
	    ],
	    "win": {
	      "icon": "./dist/icon.png",
	      "target": [
	        {
	          "target": "nsis",
	          "arch": [
	            "x64",
	            "ia32"
	          ]
	        }
	      ]
	    },
	    "mac": {
	      "target": "dmg"
	    },
	    "linux": {
	      "target": [
	        "AppImage",
	        "deb"
	      ]
	    },
	    "nsis": {
	      "oneClick": false,
	      "allowElevation": true,
	      "allowToChangeInstallationDirectory": true,
	      "installerIcon": "./dist/icon.png",
	      "uninstallerIcon": "./dist/icon.png",
	      "installerHeaderIcon": "./dist/icon.png",
	      "createDesktopShortcut": true,
	      "createStartMenuShortcut": true,
	      "shortcutName": "testApp"
	    }
	}
		  ....
}

客户端测试

npm run start

客户端打包

!使用管理员身份进入PowerShell到项目根目录下执行:

npm run build:win64

可能遇到的问题1:icon尺寸太小

解决方案:跟换像素256*256以上的icon图片

image C:\******\dist\icon.png must be at least 256x256

可能遇到的问题2:build时会download下载github的资源包,由于访问不到所以异常。

解决方案:

手动下载github上的包。

在 C:\Users\【你的用户名】\AppData\Local\electron-builder\Cache 中找到winCodeSign和nsis如果没有则创建。

将资源包解压近里面,例如:
在这里插入图片描述

正常结果

正常结果如下载win-unpacked中存在【项目名】.exe的可执行文件,在资源管理器中点击执行(最好放置在全英文路径下)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PlanAPlanB

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

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

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

打赏作者

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

抵扣说明:

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

余额充值