electron-builder设置用户选择安装目录
本文转载自:https://newsn.net/
用过electron-vue
的同学,都会知道:最终打包选择会有两个,一个是:electron-packager
,另外一个是electron-builder
。这两个工具对比起来看的话,苏南大叔更加倾向于electron-packager
。但是,大家更多人选择的是electron-builder
。那么,选择或者不选择的理由是什么呢?
苏南大叔对于electron-builder
默认生成的安装包exe
,似乎是非常不满意的。因为会默认安装完毕,根本不给人反应的时间,也不会给大家选择安装目录的机会。但是事实是:这种情况还是有的改善的。本文中主要描述的内容是:使用electron-builder
,如何设置用户可选择安装目录?
本文测试环境:win10
/electron-vue
/[email protected]
。
一语天机
这里说个一语道破天机的话,下面的等式是基本成立的:
if(windows){electron-packager + innosetup/nsis = electron-builder
}
electron-builder
中,默认是使用nsis
这个脚本来生成最终的安装包的。表面上来看,生成的安装包是非常令人不爽的。因为,太过于简陋了。特别是不给自定义安装目录的机会这事儿,颇受诟病。那么大家可以想想看,electron-builder
是基于nsis
。nsis
不能自定义安装目录么?并不是。所以,问题的解决方案就是:自定义electron-builder
的nsis
设置项目。
设置项目
由于electron-builder
的默认设置是保存在package.json
中的build
节点里面的,那么一般来说,大家就是需要修改这个节点的设置了。(也许您采用的是双配置文件的方案,那么请自行查找合适的配置位置)。
在build
字段里面增加个nsis
的子节点。配置项目有两个:
可能出现的错误提示
上述两个属性是有相关性的。如果单独设置allowToChangeInstallationDirectory
的话,可能会报错。报错如下:
allowToChangeInstallationDirectory makes sense only for assisted installer (please set oneClick to false)
最终效果
从截图中,大家可以看到,禁用了oneClick
之后,不光可以选择自定义安装目录了。其实很有很多其他的界面设置项目被打开了,那么如何设置其他的项目呢?想想看吧。
延伸阅读
相信,如果您设置了nsis
节点中的oneClick
为false
的话,一个新的大门就向你打开了。更多的nsis
配置项目,可以点击这个位置查看:
关于electron-builder
构建windows
的安装包,大家关心的大多数问题,都是可以从上面这个网址中找到答案的。仔细阅读项目吧。推荐您同时对比阅读下面这篇文章。您会有更深刻的理解。
如果您喜欢查看源码,来思考问题的话,可以查看这个文件:
electron-builder/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts
以上是 electron-builder设置用户选择安装目录 的全部内容, 来源链接: utcz.com/a/118870.html