一下是我打包的常用配置
其他配置参考:
https://www.electron.build/configuration/configuration
https://www.electron.build/configuration/nsis
package.json配置
只提供build
配置
"build": {
"productName": "makalo-cnblog-tool",
"appId": "com.makalo.cnblog-tool",
"win":{
"target": [{
"target":"nsis"
}],
"icon":"build/icon/icon.ico"
},
"nsis": {
"shortcutName": "makalo-cnblog-tool",
"oneClick": false,
"allowElevation": true,
"allowToChangeInstallationDirectory": true,
"perMachine": true,
"include": "./build/installer.nsh"
}
},
productName
项目名 这也是生成的exe文件的前缀名appId
包名win
构建win的选项target
目标封装类型,默认使用niss,win平台一般也是用这个,可写可不写icon
自定义图标路径 ,如果不指定就用electron默认图标
nsis
niss工具配置,niss一般用来配置安装和卸载程序的,shortcutName
用于所有快捷方式的名称。默认为应用程序名称。oneClick
是创建一键安装程序还是辅助安装程序allowElevation
仅辅助安装程序有效。允许请求提升。如果为false,则用户将不得不以提升的权限重新启动安装程序allowToChangeInstallationDirectory
仅辅助安装程序有效。是否允许用户更改安装目录。perMachine
是否开启安装时权限限制(此电脑或当前用户)true 表示此电脑,false代表当前用户include
NSIS包含定制安装程序脚本的路径。默认为build/installer.nsh
常用NISS脚本
;安装时写入
!macro customInstall
WriteRegStr HKCR "*shellmakalo-cnblog-tool-read" "" "ssss"
WriteRegStr HKCR "*shellmakalo-cnblog-tool-read" "Icon" "$INSTDIRmakalo-cnblog-tool.exe"
WriteRegStr HKCR "*shellmakalo-cnblog-tool-readcommand" "" '"$INSTDIRmakalo-cnblog-tool.exe" "read" "%1"'
WriteRegStr HKCR "*shellmakalo-cnblog-tool-upload" "" "sssss"
WriteRegStr HKCR "*shellmakalo-cnblog-tool-upload" "Icon" "$INSTDIRmakalo-cnblog-tool.exe"
WriteRegStr HKCR "*shellmakalo-cnblog-tool-uploadcommand" "" '"$INSTDIRmakalo-cnblog-tool.exe" "upload" "%1"'
!macroend
;卸载时清除
!macro customUninstall
DeleteRegKey HKCR "*shellmakalo-cnblog-tool-read"
DeleteRegKey HKCR "*shellmakalo-cnblog-tool-upload"
!macroend
;修改默认安装路径
!macro preInit
SetRegView 64
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "C:makalo-cnblog-tool"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "C:makalo-cnblog-tool"
SetRegView 32
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "C:makalo-cnblog-tool"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "C:makalo-cnblog-tool"
!macroend
关于files选项
从我观察的到的情况来看,electron build
默认会将你应用目录的所有文件打包进去,但是关于依赖只会打包相关的生产依赖,但是如果你项目有要保存的文件你有不想打包进去呢?比如描述文档,以前版本的应用,那怎么配置呢?这就需要files
选项了
参考:
https://www.electron.build/configuration/contents#files
例:配置项目目录下的 exe
,.gitee文件夹和所有的README
开头的文件不用打包进去
"files" : [
"!exe",
"!.gitee",
"!README.*"
],
注意
- files配置项要在build配置项底下
- 配置项不止可以配置不打包哪些文件或文件夹,也可以将制定目录的文件复制到指定的应用目录中,具体参考extraResources