Javascript 使用Electron Build捆绑MSI安装程序

Javascript 使用Electron Build捆绑MSI安装程序,javascript,node.js,electron,desktop-application,electron-builder,Javascript,Node.js,Electron,Desktop Application,Electron Builder,我目前正在使用Electron Builder分发我们内部使用的桌面应用程序。为了让它工作,我需要在我要安装此应用程序的Windows系统上安装ImageMagick和Ghostscript。我想让这些程序以某种方式安装在后台(或者至少我希望他们的MSI安装程序在安装过程中弹出),从而实现无缝安装 这目前可行吗?运行命令electron builder-p always--win,它将在dist目录中生成名为AppName Setup version.exe的独立windows安装程序。为了支持

我目前正在使用Electron Builder分发我们内部使用的桌面应用程序。为了让它工作,我需要在我要安装此应用程序的Windows系统上安装ImageMagick和Ghostscript。我想让这些程序以某种方式安装在后台(或者至少我希望他们的MSI安装程序在安装过程中弹出),从而实现无缝安装


这目前可行吗?

运行命令
electron builder-p always--win
,它将在
dist
目录中生成名为
AppName Setup version.exe
的独立windows安装程序。为了支持您的问题,您可以创建一个zip文件并将其托管在某个地方。您还可以使用GitHub存储库托管包含所需安装程序的zip文件。在第一次打开应用程序时,下载该zip文件,在后台提取,然后您可以使用
过程执行它。节点中的execFile
。下面是如何做到这一点

var exec=require('child_process')。execFile;
var fun=函数(){
log(“fun()开始”);
exec('imagic.exe',函数(错误,数据){
console.log(错误)
log(data.toString());
});  
}
乐趣();

如果您正在寻找此类文件的运行时安装,则必须将其打包并与electron应用程序一起提供。对于随electron app提供静态资产文件,您可以阅读本文,它将帮助您通过app提供静态资产。

在安装过程中找不到触发自定义脚本的方法,因此我最终将依赖项的可执行文件捆绑为资产。当使用Asar时,必须小心确保这些依赖项被解包


要以可移植格式获取本机依赖项,可以使用MacOS上的Unarchiver来探索MSI和NSIS安装程序的内容。7-Zip 15.05也可以打开它们。

这会生成应用程序,但不会捆绑我提到的依赖项。