Electron教程(三)如何打包 electron 程序:electron-forge 的使用教程

Electron教程(三)如何打包 electron 程序:electron-forge 的使用教程

Electron教程(一)什么是 Electron,由来、适用场景 和 Electron 的环境搭建
Electron教程(二)启动过程:主进程,渲染进程是什么
Electron教程(三)如何打包 electron 程序:electron-forge 的使用教程
Electron教程(四)使用 Vue Browser 版,创建小工具应用
Electron教程(五)读取本地文件内容, ipcMain ipcRenderer 之间的交互
Electron教程(六)应用菜单设置例子
Electron教程(七)结语

electron forge 官方网站

一、安装 electron-forge 是干嘛的

electron-forge 可以自动检测你的系统,然后打包成对应的可执行文件。
它可以实现 package 成最终可用的独立项目文件夹,
还可以 make 成能够安装的 zip

二、安装 electron-forge

还是按之前的目录结构开始

添加 electron-forge 开发依赖,你可以使用指令添加

npm i -D @electron-forge/cli

也可以直接在 package.json 中添加,然后再运行 npm iyarn
这两种方式是等价的

  "devDependencies": {
    "electron": "^13.1.7",
    "@electron-forge/cli": "^6.0.0-beta.58"
  }

请添加图片描述
请添加图片描述

三、初始化 electron-forge

electron-forge 在使用之前需要初始化一下,它会自动改变 package 的内容,然后添加几个打包的指令,不需要自己手动添加,很方便

npx electron-forge import

运行成功

请添加图片描述

来看下 package.json 的变化

请添加图片描述

之前的 package.json

{
  "name": "electron-demo",
  "version": "0.1.0",
  "private": true,
  "author": {
    "name": "KyleBing",
    "email": "kylebing@163.com"
  },
  "description": "demo-electron",
  "main": "app.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron": "^13.1.7"
  }
}

之后的 package.json

{
  "name": "electron-demo",
  "version": "0.1.0",
  "private": true,
  "author": {
    "name": "KyleBing",
    "email": "kylebing@163.com"
  },
  "description": "demo-electron",
  "main": "app.js",
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make"
  },
  "devDependencies": {
    "@electron-forge/cli": "^6.0.0-beta.58",
    "@electron-forge/maker-deb": "^6.0.0-beta.58",
    "@electron-forge/maker-rpm": "^6.0.0-beta.58",
    "@electron-forge/maker-squirrel": "^6.0.0-beta.58",
    "@electron-forge/maker-zip": "^6.0.0-beta.58",
    "electron": "^13.1.7"
  },
  "dependencies": {
    "electron-squirrel-startup": "^1.0.0"
  },
  "config": {
    "forge": {
      "packagerConfig": {},
      "makers": [
        {
          "name": "@electron-forge/maker-squirrel",
          "config": {
            "name": "electron_demo"
          }
        },
        {
          "name": "@electron-forge/maker-zip",
          "platforms": [
            "darwin"
          ]
        },
        {
          "name": "@electron-forge/maker-deb",
          "config": {}
        },
        {
          "name": "@electron-forge/maker-rpm",
          "config": {}
        }
      ]
    }
  }
}

四、生成可执行文件夹 和 打包

可以看到在 初始化之后 多出了两个指令,分别对应:

  • 生成可执行文件夹 pacakge
  • 打包 make

make 之前,需要先将项目 package,这个在你执行 npm run make 的时候也会提示你

1. pacakge

npm run package

请添加图片描述

运行成功后,会输出到项目目录的 out 目录下

请添加图片描述

2. make

npm run make

请添加图片描述

make 之后会输出到项目目录的 out/make

请添加图片描述

五、如何打包,生成不同平台的可执行文件

刚开始我以为可以一次性打包生成不同系统的可执行文件,后来才知道这是不可能的。
只能在对应平台中打开源项目,然后生成对应平台可用的可执行文件。
比如你需要生成 macOS 的可执行文件,就只能去 macOS 中生成,并且不同芯片架构的也不同,比如 Interl 处理器的和 M1 处理器的就不同。

1. 相关配置全貌 package.jsonconfig

 "config": {
    "forge": {
      "packagerConfig": {
        "appVersion": "1.1.3",
        "name": "五笔助手",
        "appCopyright": "KyleBing(kylebing@163.com)",
        "icon": "./assets/img/appIcon/appicon",
        "win32metadata": {
          "ProductName": "五笔助手 Windows",
          "CompanyName": "kylebing.cn",
          "FileDescription": "五笔助手 for 小狼毫"
        }
      },
      "makers": [
        {
          "name": "@electron-forge/maker-squirrel",
          "config": {
            "name": "electron_demo"
          }
        },
        {
          "name": "@electron-forge/maker-zip",
          "platforms": [
            "darwin"
          ]
        },
        {
          "name": "@electron-forge/maker-deb",
          "config": {}
        },
        {
          "name": "@electron-forge/maker-rpm",
          "config": {}
        }
      ]
    }
  }

2. packagerConfig 定义生成可执行文件的一些参数

packgerConfig 中定义的是生成的可执行文件的 icon 、名字、关于信息等,packgerConfig 是另一个插件 electron-packger 使用的配置,其官方的具体配置说明如下:

electron-forge 官方对应 packgerConfig 的说明: https://electron.github.io/electron-packager/main/interfaces/electronpackager.options.html
electron-packger 官方配置参数说明: https://electron.github.io/electron-packager/main/interfaces/electronpackager.options.html

外层是通用的,各平台 macOS Windows Linux 通用

 "appVersion": "1.1.3", // 软件版本号
 "name": "五笔助手", // 软件名字
 "appCopyright": "KyleBing(kylebing@163.com)", // 作者信息
 "icon": "./assets/img/appIcon/appicon", // 对应的图标

icon 指定软件的图标,就是显示在桌面或者应用列表中的图标
Windows 需要放一个多尺寸的 .ico 图标文件,推荐使用 Greenfish Icon Editor Pro 来制作
macOS 同样需要放一个多尺寸的 .icns 图标文件,如下

在这里插入图片描述
在这里插入图片描述
在任务栏中是这样

在这里插入图片描述

3. packgerConfig.win32metadata Windows 特有的一些字段配置

packgerConfig 中还有 Windows 特有的一些字段需要配置,放在 packgerConfig.win32metadata 中,对应 【关于】菜单中的一些信息

"ProductName": "五笔助手 Windows",
"CompanyName": "kylebing.cn",
"FileDescription": "五笔助手 for 小狼毫"

在这里插入图片描述

macOS 下是这样的
请添加图片描述

例子

https://github.com/KyleBing/wubi-dict-editor

  • 19
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值