使用electron-builder,如何设置设置用户可选择安装目录?
发布于 作者:苏南大叔 来源:程序如此灵动~用过electron-vue
的同学,都会知道:最终打包选择会有两个,一个是:electron-packager
,另外一个是electron-builder
。这两个工具对比起来看的话,苏南大叔更加倾向于electron-packager
。但是,大家更多人选择的是electron-builder
。那么,选择或者不选择的理由是什么呢?
苏南大叔对于electron-builder
默认生成的安装包exe
,似乎是非常不满意的。因为会默认安装完毕,根本不给人反应的时间,也不会给大家选择安装目录的机会。但是事实是:这种情况还是有的改善的。本文中主要描述的内容是:使用electron-builder
,如何设置用户可选择安装目录?
本文测试环境:win10
/electron-vue
/electron-builder@20.38.5
。
一语天机
这里说个一语道破天机的话,下面的等式是基本成立的:
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
的子节点。配置项目有两个:
oneClick
设置为false
allowToChangeInstallationDirectory
设置为true
package.json
:
可能出现的错误提示
上述两个属性是有相关性的。如果单独设置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
总结
问题得到了解决,授人以鱼不如授人以渔,这个道理大家都知道。所以,大家遇到问题,也要多多思考。想想如何才能更好的解决问题,才是正途。对吧?下面的链接,是苏南大叔写过的有关nsis
的文章内容,请点击查看:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
很好
最近做electron,遇到很多问题,都是从这里找到答案的
看看,需要,谢谢
bang
thanks
十分感谢
nice,感谢
感谢
666
感谢
OK
感谢感谢
666
好
玩儿玩儿完
感谢
nice
nice
十分感谢
OKAY