你是否还在用:
- electron-winstaller
- electron-packager
每次打包都是各种命令来一遍
或者你想使用inno-setup而不得不在’linux/osx’上编译出exe再切换到虚拟机上用inno-setup
重新打包一遍
或者你在用electron自带的electron.autoUpdater 而不得不忍受着它非常繁琐的发包方式
为了解决以上问题,为了能够仅仅一个命令就能直接将你的源码 生成 一个inno-setup 方式的安装包
** electron-windows-inno-installer ** 诞生了 地址: (https://github.com/Qquanwei/electron-windows-inno-installer)
有了它,你在生成installer.exe的时候仅仅需要执行一条命令
electron-windows-inno-installer mysetup.iss --icon ./favicon.ico --platform win32-x64
它将自动将你的electron代码生成一个指定平台可执行文件 然后执行inno-setup将可执行文件上下文打包出一个安装文件。
electron-windows-inno-installer 将极大方便用户的 打包,更新,发包 而且无需考虑中间环节,其使用的electron版本目前也在保持与electron最新版尽量同步更新。
(为了能够让它更好用,欢迎push : https://github.com/Qquanwei/electron-windows-inno-installer )
我用你提供的这个模块打包我的 electron 应用的时候 报如下错误,能否帮忙看下什么原因,多谢啦。 没加调试代码前错误是除红框外的信息输出。 能帮忙看下 是哪一步出错了吗? 原因是啥?
好像是找不到 gulp 导致的。
但是你说本地执行gulp正常 很奇怪,gulp有在搜索路径里吗?
@Shaman05 楼下~
我不懂啊
@zsea 什么?
@Qquanwei 是啊,我本地 gulp 运行没问题的,全局安装的,我们开发项目也要用的。
@Shaman05 提示信息显示的是 spawn 找不到 gulp
可以按照下面两种方式试下:
1
electron-windows-inno-installer/cli.js 文件中spawn那句话, 修改两处,改成如下(没有大括号):
spawn( {绝对路径的node.exe}, [ {绝对路径的gulp.js文件} ,
`--gulpfile=${gulpfile}`,`--cwd=${process.cwd()}`,'inno'], { stdio: 'inherit' });
2
当然你也可以强制执行下面命令打包项目:
gulp --gulpfile=C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\electron-windows-inno-installer\\electron-inno-auto-update\\gulpfile.js --cwd=E:\\Pikachu\\resources\\app inno
缺点是不能在改命令中追加配置信息,可以参照cli.js中的环境变量增加你的配置
process.env.INNOFILE=options.issfile;
process.env.PLATFORMS=options.platform;
process.env.ICON=options.icon;
设置环境变量 INNOFILE 为你的inno路径,PLATFORMS 为平台列表,以逗号隔开,例如其值为 "win32-ia32,win32-x64" ICON为打包生成的exe图标路径
请问支持中文路径或文件名吗?
@hulikui 支持
@hulikui 支持
关于 autoUpdater。github上的例子是要引入 node-modules:const autoupdater = require(‘electron-windows-inno-installer’); 是不是打包是也要把 “node-modules/” 的所有模块打进去?
@josuabriter 打包的时候会根据package.json的dependences中指定的包打包进去