Electron Forge 打包

本文介绍了 Electron Forge 的核心概念、模板选择、导入已有项目、依赖包、脚本命令和配置,特别是如何处理打包过程中的问题。它强调了 forge 支持的不同模板和平台,以及如何配置 maker 以创建不同类型的安装包。文章还提供了配置文件的示例,帮助开发者理解如何自定义打包选项。
摘要由CSDN通过智能技术生成

electron 应用打包方式有很多,比如 electron-builder。但现在官方主推的是 Electron Forge。

图标

https://www.electronforge.io/guides/create-and-add-icons

Electron Forge

文档:https://www.electronforge.io/
api:https://js.electronforge.io

概念

forge 有两种使用场景:

  1. 使用 forge 模板从零搭建项目,里面配置好了打包
  2. 导入已有项目进行打包
    1. 使用 forge-cli import 脚本导入项目
    2. 手动配置 forge,导入项目进行打包

注意:forge 只支持 npm 或 yarn,推荐 npm。

模板

electron forge 提供了 5 个模板:

Templates

  • template-base
  • template-vite
  • template-vite-typescript
  • template-webpack
  • template-webpack-typescript

https://www.electronforge.io/templates/vite-±typescript
https://js.electronforge.io/modules/_electron_forge_template_vite_typescript.html

导入已有项目

我们本次使用属于第二种情景,导入已有项目。

https://www.electronforge.io/import-existing-project

cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"

依赖包

它会自动安装一些包。

{
   
  "devDependencies": {
   
    "@electron-forge/cli": "^7.3.0",
    "@electron-forge/maker-deb": "^7.3.0",
    "@electron-forge/maker-rpm": "^7.3.0",
    "@electron-forge/maker-squirrel": "^7.3.0",
    "@electron-forge/maker-zip": "^7.3.0",
    "@electron-forge/plugin-auto-unpack-natives": "^7.3.0",
    "@electron-forge/plugin-fuses": "^7.3.0",
    "electron": "^29.0.1"
  }
}

这些包都是 Electron Forge 的组成部分,它们提供了不同的功能和插件,用于构建和打包 Electron 应用。下面是每个包的作用:

  1. @electron-forge/cli - Electron Forge 的命令行接口 (CLI),它提供了一组命令,如 start, package, make, publish 等,用于启动、打包、创建分发包和发布你的 Electron 应用。
  2. @electron-forge/maker-deb - 一个 maker,用于创建 Debian (.deb) 格式的安装包,这些包通常用于 Debian 和 Ubuntu 等 Linux 发行版。
  3. @electron-forge/maker-rpm - 一个 maker,用于创建 Red Hat Package Manager (.rpm) 格式的安装包,这些包通常用于 Red Hat、Fedora、CentOS 等 Linux 发行版。
  4. @electron-forge/maker-squirrel - 一个 maker,用于创建 Squirrel.Windows (.msi, .exe) 格式的安装包,这些包用于 Windows 系统。
  5. @electron-forge/maker-zip - 一个 maker,用于创建 zip 压缩包,通常用于分发没有特定安装程序的简单应用版本。
  6. @electron-forge/plugin-auto-unpack-natives - 一个插件,用于自动解包原生 Node 模块,这样它们就可以在打包的应用中被正确加载。
  7. @electron-forge/plugin-fuses - 一个插件,用于在打包过程中设置一些“熔丝”(fuses),这些熔丝可以控制应用的行为,比如禁用调试功能、防止应用被篡改等。

脚本命令

除了自动安装依赖包,还会自动添加一些脚本命令。

{
   
  // ...
  "scripts": {
   
    "start": "electron-forge start",
    "package": "electron-forge package", // 打包
    "make": "electron-forge make", // 构建分发包
    "publish": "electron-forge publish"
  }
  // ... 
}

打包和创建分发包:
打包是将应用程序和 Electron 运行时打包成可执行的形式。而创建分发包则是将这些可执行文件和必要的安装脚本、元数据打包成用户熟悉的安装包格式。

一句话总结:

  • package 为将应用打包成免安装包形式,会有一堆文件,里面有一个 exe 文件,双击运行。
  • make 为打包出一个安装包,安装包只有一个单独的文件,所以可以挂在应用市场或者官网分发,所以叫分发包。
    • 并且执行 make 打包成安装包时,必然会先进行 package 打包。所以 make 命令会有两个类型的包产物。

make 命令具体有三个产物:

  1. 安装包:{appName} Setup.exe
  2. 用于更新的 NuGet 包文件:{appName}-full.nupkg
  3. 用于检查更新是否可用的元数据文件:RELEASES

踩坑:执行npm run make时报错

  • Error: Cannot find module ‘@electron-forge/plugin-fuses’

把这个包手动安装为开发依赖即可。

npm install --save-dev @electron-forge/plugin-fuses

配置

配置可写在一个单独的文件里,也可直接在 packa.json 中添加。更推荐单独 js 文件的形式。

// package.json
{
   
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值