Blogger Information
Blog 91
fans 0
comment 0
visits 77200
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
不联网的情况下,使用 electron-builder 快速打包全平台应用
编程三昧
Original
1140 people have browsed it

electron-builder打包.001

前言

Electron 之所以能够日益风靡,是因为其简单易用且对各个操作平台具有良好的支持。

今天我就来分享一下怎么使用一套代码,快速打包生成各主流平台安装包的经验。

项目安装

首先,使用我前面介绍的提效小技巧,设置:

  • NPM 源为淘宝镜像源;
  • Electron 源为中国镜像网站中的 Electron 源地址。

然后依次执行以下指令:

  1. mkdir my-electron
  2. cd my-electron
  3. npm init -y
  4. npm install electron@14.2.6 -D
  5. npm install @electron/remote --save
  6. npm install electron-builder -D

打包配置

在 my-electron 目录下的 package.json 中,添加打包配置:

  1. {
  2. "name": "my-electron",
  3. "version": "0.1.0",
  4. "author": "编程三昧",
  5. "build": { // electron-builder配置
  6. "productName":"myFirstApp",//项目名 这也是生成的exe文件的前缀名
  7. "appId": "xxxxx",
  8. "copyright":"xxxx",//版权信息
  9. "directories": {
  10. "output": "build" // 输出文件夹
  11. },
  12. "extraResources": [{ // 需要读写的配置文件
  13. "from": "./config/config.json",
  14. "to": "../config/config.json"
  15. }],
  16. "win": {
  17. "icon": "xxx/icon.ico"//图标路径,
  18. "target":[
  19. {
  20. "target": "nsis",
  21. "arch": ["x64"]
  22. }
  23. ]
  24. },
  25. "dmg": {
  26. "contents": [
  27. {
  28. "x": 0,
  29. "y": 0,
  30. "path": "/Application"
  31. }
  32. ]
  33. },
  34. "linux": {
  35. "icon": "xxx/icon.ico"
  36. },
  37. "mac": {
  38. "icon": "xxx/icon.ico"
  39. },
  40. "nsis": {
  41. "oneClick": false, // 一键安装
  42. "guid": "xxxx", //注册表名字,不推荐修改
  43. "perMachine": true, // 是否开启安装时权限限制(此电脑或当前用户)
  44. "allowElevation": true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
  45. "allowToChangeInstallationDirectory": true, // 允许修改安装目录
  46. "installerIcon": "./build/icons/aaa.ico", // 安装图标
  47. "uninstallerIcon": "./build/icons/bbb.ico", //卸载图标
  48. "installerHeaderIcon": "./build/icons/aaa.ico", // 安装时头部图标
  49. "createDesktopShortcut": true, // 创建桌面图标
  50. "createStartMenuShortcut": true, // 创建开始菜单图标
  51. "shortcutName": "xxxx" // 图标名称
  52. }
  53. }
  54. }

配置打包脚本

在 package.json 中,添加对应的打包脚本:

  1. {
  2. "scripts": {
  3. "dev": "electron . --enable-loggin --no-sandbox",
  4. "build-64": "electron-builder --win --x64",
  5. "build-linux": "electron-builder --linux",
  6. "build-mac": "electron-builder --mac"
  7. }
  8. }

在 my-electron 目录下打开终端,运行 npm run dev 即可进入开发模式。

关于各平台 Electron 镜像

在有网络的情况下,由于我们设置了 NPM 镜像和 Electron 源,速度还是很快的。

但我这边是内网打包,没法联网,所以,需要取个巧,在打包开始之前就将对应平台的 Electron 源下载下来放到各自的 NPM 缓存中去。

electron-builder 在打包的时候,会根据系统的不同去各自的 NPM 缓存目录下查找对应版本的 Electron 源,当我们将下载好的源放在 NPM 缓存中后,就不需要再去联网拉去了。

我使用的 electron@14.2.6 镜像的下载地址为:https://registry.npmmirror.com/binary.html?path=electron/14.2.6/

这是 @electron/get 中获取 electron 镜像缓存的示例:

  1. import { downloadArtifact } from '@electron/get';
  2. const zipFilePath = await downloadArtifact({
  3. version: '14.2.6',
  4. platform: 'darwin',
  5. artifactName: 'electron',
  6. artifactSuffix: 'symbols',
  7. arch: 'x64',
  8. });

各操作系统对应的 NPM 缓存路径分别为:

  • Linux: $XDG_CACHE_HOME or ~/.cache/electron/
  • MacOS: ~/Library/Caches/electron/
  • Windows: %LOCALAPPDATA%/electron/Cache or ~/AppData/Local/electron/Cache/

注意:Linux x64Linux arm64 对应的 electron 镜像是不同的,

关于开发模式启动不了的问题

开发模式可能启动不了,其原因或许是 my-electron、node_modules 下的 electron 未执行安装,缺少 Electron 源。

想要解决,只需执行以下指令:

  1. node ./node_modules/electron/cli.js

等待 electron 镜像拉取完成后,即可正常进入开始模式。

总结

以上就是在不联网的情况下使用 electron-builder 打包全平台桌面应用的记录。

~

~ 本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post