使用WSL2时electron-forge make仅生成deb/rpm,如何生成exe?
问题描述
我正在使用WSL2,已成功运行npm run make命令,对应的package.json脚本配置如下:
... "scripts": { ..., "make": "electron-forge make" }, ...
但生成分发包时,仅输出以下内容:
✔ Making distributables ✔ Making a deb distributable for linux/x64 [12s] ✔ Making a rpm distributable for linux/x64 [25s]
请问有什么方法能让electron-forge同时生成Windows平台的exe文件?
解决方案
方法1:在WSL2中通过Wine实现跨平台构建
WSL2默认仅构建当前Linux平台的包,要生成Windows exe需借助Wine模拟Windows环境:
- 先在WSL2中安装Wine:
sudo apt update && sudo apt install wine64 - 修改
package.json的make脚本,指定Windows为目标平台:
或直接在命令行运行:"scripts": { ..., "make": "electron-forge make --platform win32" },npm run make -- --platform win32 - 注意:这种方法可能出现依赖缺失或兼容性问题,若构建失败优先尝试方法2。
方法2:在Windows原生环境中构建
Electron Forge在原生Windows环境下构建Windows包更稳定:
- 在Windows主机的PowerShell/CMD中,通过
\\wsl$\<你的WSL发行版名称>\<项目路径>访问WSL内的项目文件。 - 确保Windows环境已安装Node.js和npm,执行:
运行后默认生成Windows平台的exe安装包。npm install npm run make
方法3:配置Electron Forge指定多平台构建
若需单次命令同时生成Linux和Windows包,修改Electron Forge配置文件(通常为forge.config.js或forge.config.json):
module.exports = { // 其他配置... makers: [ // 保留现有Linux打包工具 { name: '@electron-forge/maker-deb', config: {}, }, { name: '@electron-forge/maker-rpm', config: {}, }, // 添加Windows打包工具(生成exe安装包) { name: '@electron-forge/maker-squirrel', config: { name: '你的应用名称', }, }, ], // 指定要构建的双平台 platforms: ['linux', 'win32'], };
然后在WSL2中安装Windows打包工具依赖:
npm install --save-dev @electron-forge/maker-squirrel
执行npm run make即可同时生成Linux和Windows包(仍需Wine支持Windows平台构建)。
内容的提问来源于stack exchange,提问作者KMehta
相关产品推荐
相关产品推荐

