需求:electron加载外部脚本文件修改注册表
分析:1.如何加载外部bat文件
2.如何实现打包
解决历程:
step1:
electron官网API:https://electronjs.org/docs,没有找到合适的方法加载bat文件,故而想到node实现:http://nodejs.cn/api/child_process.html#child_process_spawning_bat_and_cmd_files_on_windows
step2:
根据官网API(图1)
图1故而利用child_process的spawn方法:(图2)
图2'/c':command;
'batpath': bat脚本文件(与该代码同级)
‘address’:传入bat的参数
step3:
本文利用electron-builder实现打包流程,electron-builder中利用asar将app文件夹打包至asar虚拟文件夹下面,然而
“asar 包在 Node API 下的应用尽可能的趋向于真实的目录结构,但仍有一些底层 Node API 我们无法保证其正常工作。”;
瞧见了吧,spawn无法读取到asar下面的子文件,需要将.bat文件在打包时提出,解压到非asar目录下。于是乎,查阅electron-builder API,找到asarUnpack参数:
上代码:(图3)
图3注意:本文app目录结构为(图4),故在config中配置asarUnpacked: "**/*.bat"参考(图5)
图4 图5打包后的目录结构为:
网友评论