Conversation
electron@36 pulls in extract-zip@2, which silently fails on Node 26 and
leaves node_modules/electron/dist without the executable or path.txt.
Electron switched to @electron-internal/extract-zip in v40; v42 is the
oldest line still supported. Note that 42 drops the postinstall download,
so the binary is fetched on first require('electron') instead.
closes vuejs#1136
✅ Deploy Preview for vue-devtools-docs canceled.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On Node.js 26 the
electron@36postinstall exits without extracting the archive, sonode_modules/electron/distends up with a stray.pakfile and no executable orpath.txt. The cause isextract-zip@2, which Electron replaced with@electron-internal/extract-zipstarting in v40. Lines 40 and 41 are already EOL, so this goes to^42.11.3, the oldest supported release with the fix.Two things worth knowing about the jump from 36:
postinstall;require('electron')fetches it on first use, which is whatsrc/cli.tsalready does throughimport electron from 'electron'.electronpackage now requires Node >= 22.12 while the rootenginesfield still says >= 18.19 (Node 18 and 20 are both EOL). I leftenginesalone; adding one topackages/electronis your call.None of the APIs used in
packages/electron(app,BrowserWindow,webPreferences,setMenu,loadURL) are touched by the 37-42 breaking-change notes. The lockfile diff is mostly@types/node24.7.2 -> 24.13.4, pulled in by electron's^24.9.0range and then deduped across the workspace.Verified with Node v26.8.2: fresh
npm install electron@36.9.4reproduces the emptydist/; with42.11.3,npx electron --versionprintsv42.11.3.pnpm install --frozen-lockfileandpnpm build:electronpass on the same Node.closes #1136