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

举报
青年码农 发表于 2022/08/25 00:53:54 2022/08/25
【摘要】 我有个模版项目是用vue-cli3.x开发的,测试部署已经没问题,突发奇想,能不能打包成exe文件,在桌面运行,开始鼓捣。 1.先将项目打包 yarn build 2.安装electron和electron-packager yarn add electronyarn add electron-packager 3.di...

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

1.先将项目打包

yarn build
  

2.安装electron和electron-packager


   
  1. yarn add electron
  2. yarn add electron-packager

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


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

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

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


   
  1. {
  2. "name": "electron-quick-start",
  3. "version": "1.0.0",
  4. "description": "A minimal Electron application",
  5. "main": "main.js",
  6. "scripts": {
  7. "start": "electron .",
  8. "package": "electron-packager . HelloWorld --platform=win32 --arch=x64 --icon=computer.ico --out=./out --asar --app-version=0.0.1 --overwrite --ignore=node_modules"
  9. },
  10. "repository": "https://github.com/electron/electron-quick-start",
  11. "keywords": [
  12. "Electron",
  13. "quick",
  14. "start",
  15. "tutorial",
  16. "demo"
  17. ],
  18. "author": "GitHub",
  19. "license": "CC0-1.0",
  20. "devDependencies": {
  21. "electron": "^9.0.0"
  22. },
  23. "dependencies": {
  24. "electron-packager": "^14.2.1"
  25. }
  26. }

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

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

ff4f37923381e7362a62c81ebde462f3.png


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

注:

  • sourcedir: 资源(dist/package.json)路径,在本例中既是./dist/

  • appname:打包出的exe名称,这里取名为helloworld

  • platform :平台名称(windows是win32)

  • arch: 版本,本例为x64

6.生成exe

yarn  electron_build
  

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

fad2615aea83a76a17279e58ed605617.png

运行效果

55300b2b83ebf46ac637c08e3674fbcf.png

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066702

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。