Electron自定义安装脚本

在 Electron 应用的开发过程中,常常需要为用户提供一个安装程序,能够自定义安装路径并在安装时创建快捷方式。这篇文章将介绍如何使用 NSIS(Nullsoft Scriptable Install System)来实现这些功能。我们将通过一个实际的脚本示例,详细讲解如何在 Electron 项目中进行配置和使用。

什么是 NSIS?

NSIS 是一个开源的 Windows 安装程序生成器,通过脚本语言提供高度的可配置性。它允许开发者定制安装过程中的每一个细节,包括安装路径的选择、注册表的写入以及快捷方式的创建等。

配置 NSIS 脚本

下面是一段示例脚本,展示了如何在安装过程中自定义安装路径并创建额外的快捷方式。

bash 复制代码
!macro createWebShortcut
  CreateShortCut "$DESKTOP\xx系统.lnk" "https://xxxxxxxx.com/" "" "$INSTDIR\resources\xx.ico" 0
!macroend

!macro preInit
  SetRegView 64
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  SetRegView 32
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
!macroend

!macro customInstall
  !insertmacro createWebShortcut
!macroend

!macro customUnInstall
  Delete "$DESKTOP\xx.lnk"
!macroend

代码解析解析

创建快捷方式

bash 复制代码
!macro createWebShortcut
  CreateShortCut "$DESKTOP\xx系统.lnk" "https://xxxxxxx.com/" "" "$INSTDIR\resources\xx.ico" 0
!macroend

这段代码使用 CreateShortCut 命令在用户的桌面上创建一个名为"xx系统"的快捷方式,指向指定的网址,并使用 $INSTDIR\resources\xx.ico 作为图标。

注册表写入

bash 复制代码
!macro preInit
  SetRegView 64
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  SetRegView 32
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$INSTDIR"
!macroend

在安装过程中,preInit 宏会将安装路径写入注册表的不同位置(64 位和 32 位)。这在某些情况下可能会非常有用,例如当你需要在应用程序启动时读取这些信息。

自定义安装过程

yaml 复制代码
!macro customInstall
  !insertmacro createWebShortcut
!macroend

customInstall 宏调用了之前定义的 createWebShortcut 宏,在安装过程中创建桌面快捷方式。

自定义卸载过程

bash 复制代码
!macro customUnInstall
  Delete "$DESKTOP\xx系统.lnk"
!macroend

在卸载过程中,customUnInstall 宏会删除之前创建的桌面快捷方式,确保卸载干净。

在 Electron 中集成 NSIS

  1. 配置 electron-builder: 在 package.json 文件中配置 electron-builder,以便使用自定义的 NSIS 脚本。
json 复制代码
{
  "name": "your-app",
  "version": "1.0.0",
  "main": "main.js",
  "build": {
    "appId": "com.example.yourapp",
    "nsis": {
      "include": "build/installer.nsh"
    }
  },
  "devDependencies": {
    "electron": "^11.0.0",
    "electron-builder": "^22.0.0"
  }
}
  1. 创建 NSIS 脚本: 在 build 目录下创建 installer.nsh 文件,并粘贴前面的 NSIS 脚本。

  2. 打包应用: 使用 electron-builder 打包你的应用,命令如下:

    npx electron-builder

结语

通过配置 NSIS 脚本,我们可以在 Electron 应用的安装过程中实现自定义安装路径,并创建额外的快捷方式。这为用户提供了更好的安装体验,也增加了应用的灵活性。NSIS 强大的脚本功能让我们可以细致地控制安装过程中的每一个步骤,确保应用程序按照预期的方式部署和运行。

相关推荐
VincentFHR37 分钟前
Canvas 高性能K线图,支持无限左右滑动
前端·数据可视化·canvas
sophie旭41 分钟前
一道面试题,开始性能优化之旅(3)-- DNS查询+TCP(二)
前端·面试·性能优化
面向星辰1 小时前
css选择器(继承补充)
前端·css
koooo~1 小时前
Vue3中的依赖注入
前端·javascript·vue.js
huuyii1 小时前
Nest 基础知识
前端
沢田纲吉1 小时前
《LLVM IR 学习手记(三):赋值表达式与错误处理的实现与解析》
前端·编程语言·llvm
sophie旭1 小时前
一道面试题,开始性能优化之旅(3)-- DNS查询+TCP(一)
前端·面试·性能优化
IT_陈寒2 小时前
JavaScript性能优化:这7个V8引擎技巧让我的应用速度提升了50%
前端·人工智能·后端
学渣y2 小时前
nvm下载node版本,npm -v查看版本报错
前端·npm·node.js
excel2 小时前
首屏加载优化总结
前端