当前位置:   article > 正文

将Vue项目打包为桌面应用 electron_如何将一个springboot+vue项目打包成桌面应用

如何将一个springboot+vue项目打包成桌面应用

electron-quick-start

将已有vue项目打包成桌面应用。在网上查找了很多教程,都不太全面,踩了好多次雷,准备记录一下我成功的过程。

这里我用了electron-quick-start,大家可以去官方clone一下项目。

git clone https://github.com/electron/electron-quick-start 

第一步

修改我们clone下来的项目配置文件。这里把我的配置文件放出来,大家可以参考。

main.js

  1. // Modules to control application life and create native browser window
  2. const {app, BrowserWindow,Menu} = require('electron')
  3. const path = require('path')
  4. function createWindow () {
  5. // Create the browser window.
  6. Menu.setApplicationMenu(null) //这个地方是运行的时候没有顶部的菜单栏,大家注释运行一下就明白了。
  7. const mainWindow = new BrowserWindow({
  8. width: 1920,
  9. height: 1080,
  10. // frame: false,
  11. // resizable: false,
  12. icon: path.join(__dirname,"./dist/500.png"), //这个地方是图标的设置,图标不要小于256
  13. minHeight: 1080,
  14. minWidth: 1920,
  15. webPreferences: {
  16. preload: path.join(__dirname, 'preload.js')
  17. }
  18. })
  19. // mainWindow.loadURL("http://172.20.31.172:3000/arcgisapi/library/3.25/init.js"); // 开发环境 --> 进行调试
  20. // and load the index.html of the app.
  21. mainWindow.loadFile('./dist/index.html') //这是进入首页的地址,一定要路径正确
  22. // Open the DevTools.
  23. // mainWindow.webContents.openDevTools()
  24. }
  25. // This method will be called when Electron has finished
  26. // initialization and is ready to create browser windows.
  27. // Some APIs can only be used after this event occurs.
  28. app.whenReady().then(() => {
  29. createWindow()
  30. app.on('activate', function () {
  31. // On macOS it's common to re-create a window in the app when the
  32. // dock icon is clicked and there are no other windows open.
  33. if (BrowserWindow.getAllWindows().length === 0) createWindow()
  34. })
  35. })
  36. // Quit when all windows are closed, except on macOS. There, it's common
  37. // for applications and their menu bar to stay active until the user quits
  38. // explicitly with Cmd + Q.
  39. app.on('window-all-closed', function () {
  40. if (process.platform !== 'darwin') app.quit()
  41. })
  42. // In this file you can include the rest of your app's specific main process
  43. // code. You can also put them in separate files and require them here.

package.json 

  1. {
  2. "name": "electron-quick-start",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "main.js",
  6. "scripts": {
  7. "start": "electron .",
  8. "packager": "electron-packager ./ App --platform=win32 --arch=x64 --overwrite",
  9. "electron:build": "electron-builder build --config electron-builder.json"
  10. },
  11. "repository": "",
  12. "keywords": [
  13. "Electron",
  14. "quick",
  15. "start",
  16. "tutorial",
  17. "demo"
  18. ],
  19. "author": "",
  20. "license": "CC0-1.0",
  21. "devDependencies": {
  22. "electron": "^22.0.0",
  23. "electron-packager": "^17.1.1"
  24. },
  25. "dependencies": {}
  26. }

 我这里新建了一个打包的配置文件,很重要,也非常方便后续操作。
electron-builder.json

  1. {
  2. "appId": "demo.com",
  3. "productName": "项目名称",
  4. "copyright": "Copyright © 2023",
  5. "files": ["./main.js", "./dist"],
  6. "directories": {
  7. "output": "dists"
  8. },
  9. "win": {
  10. "icon": "./dist/500.png",
  11. "requestedExecutionLevel": "requireAdministrator",
  12. "target": ["nsis", "zip"]
  13. },
  14. "nsis": {
  15. "oneClick": false,
  16. "allowElevation": true,
  17. "allowToChangeInstallationDirectory": true,
  18. "createDesktopShortcut": true,
  19. "createStartMenuShortcut": true,
  20. "shortcutName": "demo"
  21. }
  22. }

配置完别忘了npm install一下依赖。

第二步

回到vue项目,将我们的vue项目配置文件 vue.config.js中,修改公共路径为相对路径。

  1. assetsPublicPath:'./'
  2. 有的配置可能是
  3. publicPath:'./'

第三步

打包我们的vue项目,npm run build 。将dist文件夹复制出来,粘贴到electron-quick-start根目录下。
参考一下我的项目层级关系。

 

第四步
运行npm run start 就是本地打开桌面应用。
运行npm run packager 项目中会出现一个 App-win32-x64 的文件夹,这个文件就是打包好的桌面应用,文件夹里有一个 App.exe 文件,App.exe就是这个项目的启动文件。
运行npm run electron:build 就是打包桌面程序,会出现一个dists文件夹,内含setup版本(就是安装包,下一步下一步那种)和zip压缩版本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/328577?site
推荐阅读
相关标签
  

闽ICP备14008679号