当前位置:   article > 正文

使用Electron将Vue项目打包成桌面应用_用electron打包vue桌面应用

用electron打包vue桌面应用

一、

Electronicon-default.png?t=N4P3https://so.csdn.net/so/search?q=Electron&spm=1001.2101.3001.7020

1、Electron安装命令:

npm install electron g

2、Vue项目添加Electron-builder打包工具:

vue add electron-builder

PS:如果安装electron或者builder打包工具失败请设置国内镜像并且重新安装

3、设置国内镜像:

npm config edit

4、执行后会弹出npm的配置文档,将以下类容复制到文件末尾。

electron_mirror=https://npm.taobao.org/mirrors/electron/
 
electron-builder-binaries_mirror=https://npm.taobao.org/mirrors/electron-builder-binaries/

二、

npm run serve    网页运行
 
npm run electron:serve   网页运行并打开客户端运行
 
npm run electron:build   构建打包客户端-会在根目录生成dist_electron文件夹
                         其中的XXX Setup XXX.exe就是安装包
 

三、

1、修改logo图片配置打包信息:注意:是vue.config.js文件,不是package.js

我下面引入的图片里面有一个build/logo.ico的文件,这个文件大小必须是256*256的
然后这个build的目录在项目根目录下创建,图片放进去就行
  1. module.exports = {
  2. publicPath: process.env.NODE_ENV === 'production' ? './' : '/', //判断开发模式还是生产模式
  3. pluginOptions: {
  4. electronBuilder: {
  5. builderOptions: {
  6. nsis: {
  7. allowToChangeInstallationDirectory: true,
  8. oneClick: false,
  9. installerIcon: "./build/logo.ico", //安装logo
  10. installerHeaderIcon: "./build/logo.ico" //安装logo
  11. },
  12. electronDownload: {
  13. mirror: "https://npm.taobao.org/mirrors/electron/" //镜像设置
  14. },
  15. win: {
  16. icon: './build/logo.ico' //打包windows版本的logo
  17. },
  18. productName: "应用名称", //应用的名称
  19. }
  20. }
  21. },
  22. }

2、electron-builder的配置文件

  1. build: {
  2.         productName: "xxxx", //项目名 这也是生成的exe文件的前缀名
  3.         appId: "com.xxx.xxxxx", //包名  
  4.         copyright: "xxxx", //版权信息
  5.         directories: { //输出文件夹
  6.           output: "build-electron"
  7.         },
  8.         nsis: { //nsis相关配置,打包方式为nsis时生效
  9.           oneClick: false, // 是否一键安装
  10.           allowElevation: true, // 允许请求提升,如果为false,则用户必须使用提升的权限重新启动安装程序。
  11.           allowToChangeInstallationDirectory: true, // 允许修改安装目录
  12.           installerIcon: "./build/icons/aaa.ico", // 安装图标
  13.           uninstallerIcon: "./build/icons/bbb.ico", //卸载图标
  14.           installerHeaderIcon: "./build/icons/aaa.ico", // 安装时头部图标
  15.           createDesktopShortcut: true, // 创建桌面图标
  16.           createStartMenuShortcut: true, // 创建开始菜单图标
  17.           shortcutName: "xxxx", // 图标名称
  18.           include: "build/script/installer.nsh", // 包含的自定义nsis脚本
  19.         },
  20.         publish: [
  21.           {
  22.             provider: "generic", // 服务器提供商,也可以是GitHub等等
  23.             url: "http://xxxxx/" // 服务器地址
  24.           }
  25.         ],
  26.           electronDownload: {
  27.                   mirror: "https://npm.taobao.org/mirrors/electron/"
  28.               },
  29.         win: {
  30.           icon: "build/icons/aims.ico",
  31.           target: [
  32.             {
  33.               target: "nsis", //使用nsis打成安装包,"portable"打包成免安装版
  34.               arch: [
  35.                 "ia32", //32位
  36.                 "x64" //64位
  37.               ]
  38.             }
  39.           ]
  40.         },
  41.         mac: {
  42.           icon: "build/icons/icon.icns"
  43.         },
  44.         linux: {
  45.           icon: "build/icons"
  46.         }
  47.       }

3、vue.config.js 配置示例:

  1. module.exports = defineConfig({
  2.   publicPath: process.env.NODE_ENV === 'production' ? './' : '/', //判断开发模式还是生产模式
  3.   transpileDependencies: true,
  4.   lintOnSave: false,
  5.   pluginOptions: {
  6.       electronBuilder: {
  7.           builderOptions: {
  8.               productName: '随意', // 生成 exe 的名字
  9.               appId: "随意", // 包名  
  10.               copyright: "随意", // 版权信息
  11.               asar: false, // 文件不压缩成 app.asar
  12.               directories: { // 输出文件夹
  13.                   output: "electron_output",
  14.               },
  15.               nsis: {
  16.                   oneClick: false, //是否一键安装
  17.                   allowElevation: false, // 允许请求提升。若为false,则用户必须使用提升的权限重新启动安装程序
  18.                   allowToChangeInstallationDirectory: true, //是否允许修改安装目录
  19.                   installerIcon: "./build/icons/icon.ico", // 安装时图标
  20.                   uninstallerIcon: "./build/icons/icon.ico", //卸载时图标
  21.                   installerHeaderIcon: "./build/icons/icon.ico", // 安装时头部图标
  22.                   createStartMenuShortcut: true, // 是否创建开始菜单图标
  23.                   createDesktopShortcut: true, //是否创建桌面图标
  24.                   shortcutName: "随意", // 快捷方式名称
  25.                   runAfterFinish: false, //是否安装完成后运行
  26.               },
  27.               electronDownload: {
  28.                   mirror: "https://npm.taobao.org/mirrors/electron/"
  29.               },
  30.               win: {
  31.                   icon: 'build/icons/icon.ico',
  32.                   target: [{
  33.                       target: "nsis", //利用nsis制作安装程序
  34.                       arch: [
  35.                           "x64", //64位
  36.                           // "ia32" //32位
  37.                       ]
  38.                   }]
  39.               },
  40.           }
  41.       }
  42.   },
​
})

四、

1、隐藏菜单栏目:根目录下src/background.js文件,找到app.on方法

  1. app.on('ready', async () => {
  2. createWindow()
  3. // 隐藏菜单栏
  4. const {
  5. Menu
  6. } = require('electron');
  7. Menu.setApplicationMenu(null);
  8. // hide menu for Mac
  9. if (process.platform !== 'darwin') {
  10. app.dock.hide();
  11. }
  12. })

2、设定宽高也在这个文件里面

  1. const win = new BrowserWindow({
  2. width: 1000,
  3. height: 800,
  4. title: '标题',
  5. webPreferences: {
  6. // Use pluginOptions.nodeIntegration, leave this alone
  7. // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
  8. nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION,
  9. contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
  10. }
  11. })

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

闽ICP备14008679号