Linux Mint下Electron应用构建失败:'build: not found'错误求助
我来帮你一步步搞定这个构建报错和跨平台打包的问题,先从最直接的错误入手:
一、修复「sh: 1: build: not found」错误
看你的package.json脚本里用了build命令,但在electron-builder 21.x版本里,正确的CLI调用应该是electron-builder,而不是直接写build——系统找不到这个全局命令才会报错。你需要把scripts部分改成这样:
"scripts": { "postinstall": "install-app-deps", "start": "npm install && electron ./app", "pack": "electron-builder --dir", "dist": "electron-builder" }
另外要注意:必须用npm run pack或者npm run dist来执行构建,别直接在终端敲build命令哦。
二、搞定跨平台打包的问题
1. Linux Mint上构建Windows安装包
要在Linux环境下生成Windows的安装包,得先装wine(Windows兼容层),electron-builder依赖它来模拟Windows环境:
打开终端执行:
sudo apt update && sudo apt install wine-stable
装完之后重新跑npm run dist,就能生成Windows的squirrel安装包了。
2. MySQL原生模块的编译问题
你的项目用了mysql这个原生模块,Electron自带的Node.js版本和你系统的Node.js版本大概率不一样,直接打包会导致模块无法运行。得针对Electron版本重新编译:
直接在终端跑:
npx electron-rebuild
嫌每次手动麻烦的话,可以把这个命令加到postinstall脚本里,每次装完依赖自动重建:
"scripts": { "postinstall": "install-app-deps && electron-rebuild", // 其他脚本保持不变 }
3. 清理package.json的冗余配置
你的package.json里重复写了"author": "",这会覆盖上面那个有效的作者信息,建议删掉后面空的author字段,避免配置冲突。
三、验证构建的完整流程
按这个顺序走,能帮你排查大部分问题:
- 先清理旧依赖和缓存:
rm -rf node_modules package-lock.json,然后重新npm install - 先跑
npm run start确认应用能正常启动,排除运行时的错误 - 再跑
npm run pack生成未打包的目录,检查这个目录里的应用能不能正常运行 - 最后跑
npm run dist,应该就能同时生成Linux(AppImage、deb)和Windows的安装包了
如果还是有问题,可以试试把electron和electron-builder升到同版本的小更新(Electron 6.x和electron-builder 21.x是兼容的),或者检查有没有其他依赖冲突的情况。
内容的提问来源于stack exchange,提问作者Zaki Muhammad Mulla

