electron-vue跨平台桌面应用开发实战教程(六)——打包

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/David1025/article/details/104461062

前边几篇文章介绍了一些基本用法,最终都是要打包成可执行应用程序的,今天我们就讲讲怎么打包

2020.03.13更新

打包出来应用,如果再win7上白屏,请检查是否安装 .net frameword 4.6

1. 设置应用appId

在package.json 中增加

  1. "appId": "com.ipp.electronvue",

2. 增加vue.config.js

这个文件是用来配置打包工具electron-builder的参数,代码中有对应的注释,按照对应的配置修改为自己的图标就好。

  1. module.exports = {
  2. // 第三方插件配置
  3. pluginOptions: {
  4. // vue-cli-plugin-electron-builder 配置
  5. electronBuilder: {
  6. builderOptions: {
  7. // 设置打包之后的应用名称
  8. productName: 'electron-vue-demos',
  9. win: {
  10. icon: 'public/electron-icon/icon.ico',
  11. // 图标路径 windows系统中icon需要256*256的ico格式图片,更换应用图标亦在此处
  12. target: [{
  13. // 打包成一个独立的 exe 安装程序
  14. target: 'nsis',
  15. // 这个意思是打出来32 bit + 64 bit的包,但是要注意:这样打包出来的安装包体积比较大
  16. arch: [
  17. 'x64'
  18. // 'ia32'
  19. ]
  20. }]
  21. },
  22. dmg: {
  23. contents: [
  24. {
  25. x: 410,
  26. y: 150,
  27. type: 'link',
  28. path: '/Applications'
  29. },
  30. {
  31. x: 130,
  32. y: 150,
  33. type: 'file'
  34. }
  35. ]
  36. },
  37. linux: {
  38. // 设置linux的图标
  39. icon: 'resources/ico/icon.png',
  40. target: 'AppImage'
  41. },
  42. mac: {
  43. icon: 'resources/ico/icon.icns'
  44. },
  45. files: ['**/*'],
  46. extraResources: {
  47. // 拷贝dll等静态文件到指定位置,否则打包之后回出现找不大dll的问题
  48. from: 'resources/',
  49. to: './'
  50. },
  51. asar: false,
  52. nsis: {
  53. // 是否一键安装,建议为 false,可以让用户点击下一步、下一步、下一步的形式安装程序,如果为true,当用户双击构建好的程序,自动安装程序并打开,即:一键安装(one-click installer)
  54. oneClick: false,
  55. // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
  56. allowElevation: true,
  57. // 允许修改安装目录,建议为 true,是否允许用户改变安装目录,默认是不允许
  58. allowToChangeInstallationDirectory: true,
  59. // 安装图标
  60. installerIcon: 'resources/ico/icon.ico',
  61. // 卸载图标
  62. uninstallerIcon: 'resources/ico/icon.ico',
  63. // 安装时头部图标
  64. installerHeaderIcon: 'resources/ico/icon.ico',
  65. // 创建桌面图标
  66. createDesktopShortcut: true,
  67. // 创建开始菜单图标
  68. createStartMenuShortcut: true
  69. }
  70. },
  71. chainWebpackMainProcess: config => {
  72. config.plugin('define').tap(args => {
  73. args[0].IS_ELECTRON = true
  74. return args
  75. })
  76. },
  77. chainWebpackRendererProcess: config => {
  78. config.plugin('define').tap(args => {
  79. args[0].IS_ELECTRON = true
  80. return args
  81. })
  82. }
  83. }
  84. }
  85. }

在这里我们需要注意extraResources这个参数,由于打包后某些资源的路径会发生变化,例如托盘的图标,就会出现找不到的情况,所以我们把图片放在根目录的resources文件夹中,然后把resources文件夹中的资源文件打包后放到对应的位置,所以我们background.js需要做以下修改:

  1. // 设置托盘
  2. tray = new Tray('resources/ico/icon.png')

3.执行打包命令

  1. run electron:build

4.修改系统通知的应用包名

打包之后的应用,在测试系统通知时展示 的是包名
在这里插入图片描述
我们这里把他改成应用的中文名称,只需要在background.js中增加

  1. app.setAppUserModelId('我的程序')

在这里插入图片描述
electron打包最主要的就是在vue.config.js 对electronBuilder打包工具的各种配置。下一篇我们讲解下怎么调用C#动态链接库dll文件。

更多内容请关注公众号
在这里插入图片描述