![深入浅出Electron:原理、工程与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/723/41913723/b_41913723.jpg)
3.8 NSIS介绍
默认情况下electron-builder使用NSIS安装包制作工具(https://nsis.sourceforge.io/)生成安装包,这是一个非常强大的安装包制作工具,它的全名是Nullsoft Scriptable Install System,开发者可以在NSIS环境下通过编写特定的脚本来生成应用程序的安装包。在介绍electron-builder是如何驱使NSIS完成打包工作前,我们先来介绍一下NIS Edit(http://hmne.sourceforge.net/)这个可视化脚本制作工具,安装该工具后可以通过新建脚本向导来创建一个NSIS脚本,如图3-5所示。
![076-1](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/076-1.jpg?sign=1738891313-RFFaRO72J6y5qbu0wBjcRhB4uFNFxFzj-0-f046408e9f3bc91475ea3e0a13dfabb9)
图3-5 NIS Edit新建脚本向导
1)脚本向导会要求开发者输入目标程序安装包的基本信息,如图3-6所示。
![077-1](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/077-1.jpg?sign=1738891313-no7mGMoEBeqCQhMh07wCNbLUyt5dspos-0-856f3865959cb91d2acc9d1b4e94c840)
图3-6 NIS Edit应用程序信息
2)选择安装包应用程序图标、压缩算法及语言,如图3-7所示。
![077-2](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/077-2.jpg?sign=1738891313-8Hz7NpascsqWuP46hIIO07orqz48QiIP-0-de8003f652825a35e2106dbf9ea3d8c2)
图3-7 NIS Edit安装程序选项
推荐使用LZMA压缩算法,该算法压缩比非常高,可以极大地减小你的安装包的体积。接下来选择待打包的目标目录(这里忽略了几步无关紧要的配置),如图3-8所示。
3)在图3-8中首先把示例中的两个文件删除,接着选择前面提到的win-ia32-unpacked目录,只选择一个目录路径即可,不必选择这个目录下的所有文件,打开如图3-9所示的界面(再次忽略了几步无关紧要的配置)。
![077-3](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/077-3.jpg?sign=1738891313-ezzPORbym4lIHreVCy89HvYEeYcXlGbP-0-e3d4430f4f1b93989babe2c9131c8396)
图3-8 NIS Edit应用程序文件
![077-4](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/077-4.jpg?sign=1738891313-b2P8cVJad4z5pblL3ZooLubT5NJ9USUX-0-edb854814ce379a126e23c89b7e67e59)
图3-9 NIS Edit安装程序之后运行
4)在图3-9中,“程序”输入框是安装完成后要启动的可执行程序的文件路径,其中$INSTDIR代表用户选择的安装目录,AppMainExe.exe是你应用程序的可执行程序文件名。
5)按要求一步步执行完脚本向导,最终生成一个.nsi格式的脚本,如图3-10所示。
![078-1](https://epubservercos.yuewen.com/C04827/21933793908859606/epubprivate/OEBPS/Images/078-1.jpg?sign=1738891313-WMtrjwhrIlkuuLJKiBhBZ0TjIxKCENYN-0-ce66190df585a23019ac1c0810e013a9)
图3-10 NIS Edit生成并启动安装包
图3-10中框选了两个按钮,点击左侧的按钮后,NIS Edit会把脚本传递给NSIS,由NSIS编译脚本并生成安装包;右侧的按钮不但可以生成安装包,还可以启动安装包,以供开发者测试自己的安装包是否正常。
生成的脚本里包含众多的预定义宏、区段、方法和逻辑,下面简单介绍几个。
- Section "MainSection" SEC01:安装区段,在应用程序安装时执行,负责释放文件、写注册表等工作。
- Section Uninstall:卸载区段,在应用程序卸载时被执行,负责删除客户端电脑上的文件、删除注册表等工作。
- Section -[SectionName]:隐藏区段(前面带“-”的都为隐藏区段),在应用程序安装时执行,负责创建桌面图标、注册卸载程序等工作。
有了nsi脚本,NSIS就可以按照脚本的逻辑生成安装包,NIS Edit工具是通过命令行参数的形式把这个脚本传递给NSIS的,electron-builder也不例外,下面就介绍一下electron-builder是怎么做的。