Skip to content

fix: upgrade electron-builder to pass windows build#13

Open
1WorldCapture wants to merge 1 commit intoyan5xu:mainfrom
1WorldCapture:main
Open

fix: upgrade electron-builder to pass windows build#13
1WorldCapture wants to merge 1 commit intoyan5xu:mainfrom
1WorldCapture:main

Conversation

@1WorldCapture
Copy link
Copy Markdown

clone完项目后运行pnpm install报错:

pnpm install
Lockfile is up to date, resolution step is skipped
Already up to date

╭ Warning ───────────────────────────────────────────────────────────────────────────────────╮
│                                                                                            │
│   Ignored build scripts: @tailwindcss/oxide, esbuild, ffmpeg-static.                       │
│   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.   │
│                                                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

. postinstall$ electron-builder install-app-deps
│   • electron-builder  version=24.13.3
│   • loaded configuration  file=package.json ("build" field)
│   • rebuilding native dependencies  dependencies=better-sqlite3@11.10.0 platform=win32 arch=x64
│   • install prebuilt binary  name=better-sqlite3 version=11.10.0 platform=win32 arch=x64 napi=
│   ⨯ cannot find prebuild-install  
│   ⨯ cannot execute  cause=fork/exec C:\Users\lyon\AppData\Roaming\nvm\v20.18.1\node_modules\pnpm\bin\pnpm.cjs: %1 is not a valid Win32 application.
│                     command='C:\Users\lyon\AppData\Roaming\nvm\v20.18.1\node_modules\pnpm\bin\pnpm.cjs' rebuild better-sqlite3@11.10.0
│                     workingDir=
└─ Failed in 725ms at D:\workspace-new\ququ
 ELIFECYCLE  Command failed with exit code 1.

AI辅助排查:

我已检查到以下关键信息(基于你的项目和当前系统):
•  Node: v20.18.1
•  pnpm: 10.12.3(PowerShell 实际使用的是 C:\nodejs\pnpm.ps1)
•  electron: 36.5.0
•  electron-builder: ^24.6.4(实际解析为 24.13.x,从之前日志可见)
•  better-sqlite3: 11.10.0
•  package.json 有 postinstall: electron-builder install-app-deps

结论(结合你之前的报错栈):
•  electron-builder 24.13.x 在 Windows 上调用包管理器时,会直接尝试执行 pnpm 的入口脚本 pnpm.cjs(路径显示为 C:\Users\lyon\AppData\Roaming\nvm\v20.18.1\node_modules\pnpm\bin\pnpm.cjs),而不是通过 node 或 Windows 的 shim(pnpm.cmd / pnpm.ps1)。这会触发 “%1 is not a valid Win32 application.”。
•  同时 electron-builder 先尝试获取 better-sqlite3 的预编译二进制,但显示 “cannot find prebuild-install”,于是回退到 “pnpm rebuild …”,进而踩到上面这个 Win32 执行错误。
•  你的 pnpm 版本是 10.x,会要求 “pnpm approve-builds” 才允许运行部分依赖的构建脚本,日志里也提示忽略了 @tailwindcss/oxide、esbuild、ffmpeg-static 的构建脚本。这不是这次失败的直接原因,但后续也需要批准。

将electron-builder升级到26.0.0解决问题。

@XueshiQiao
Copy link
Copy Markdown

遇到同样的问题,通过这个解决了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants