v8.0.0-alpha.6
Pre-releaseThe ESM Release
This release marks the culmination of our journey to bump all of our first-party Electron packages to Node 22 LTS + ESM.
Electron Forge is now a set of ESM packages and requires at least Node.js 22.12.0 (the first version to support require(esm) in CommonJS).
All dependent @electron/ npm packages have been bumped to their latest major version.
@electron/asar- Removed all default exports.
@electron/fuses- No additional breaking changes beyond Node.js and ESM requirements.
@electron/get- Removed deprecated
nightly_mirroroption. UsenightlyMirrorinstead. - Removed deprecated
forceoption. UsecacheMode: ElectronDownloadCacheMode.WriteOnlyinstead.
- Removed deprecated
@electron/notarize- Removed deprecated
altoolnotarization strategy. Thetoolparameter is no longer used.
- Removed deprecated
@electron/osx-sign- Removed deprecated
signAsync,walkAsync, andflatAsyncfunctions. The basesign,walk, andflatfunctions are now Promise-based exclusively.
- Removed deprecated
@electron/packager- ASAR is now enabled by default with
unpack: '**/{.**,**/}/**/*.node'(you likely can removed theauto-unpack-nativesForge plugin). derefSymlinksnow defaults totrue.- Hook arguments are now consolidated into a single object parameter and hooks are promisified.
- ASAR is now enabled by default with
@electron/rebuild- Removed default export.
- Removed unused
nodeGypPathfield from theRebuilderobject.
@electron/universal- No additional breaking changes beyond Node.js and ESM requirements.
@electron/windows-sign- No additional breaking changes beyond Node.js and ESM requirements.
Additionally, many other dependencies are bumped to their latest major version! Most notably, @electron-forge/plugin-vite now uses Vite 7.
Moving init and import out of @electron-forge/core
The init and import ("bootstrap") commands aren't useful once you have a Forge app working. Fundamentally, it doesn't make sense for them to exist within @electron-forge/core, especially since it also meant that all Forge apps ended up bundling webpack and vite in their node_modules (inherited from init depending on @electron-forge/template-*).
This release moves the core of the init and import logic into the create-electron-app package. 👍
What's next?
This is subject to change, but the next release will probably ship with:
- Vite 8
- Modern linting for templates
- Modern compiler options for TypeScript templates
- ESM bundling support for the Vite plugin
A full roadmap is available in #4082. (If you have any feedback or comments, feel free to leave them in the issue!)
Yours truly,
@erickzhao
Changelog
- fix(template): modernize eslint deps by @erickzhao in #4132
- feat!: Node 22 + ESM by @erickzhao in #4059
- chore: add local claude code settings to
.gitignoreby @erickzhao in #4158 - build: isolate yarn cache when running verdaccio by @erickzhao in #4161
- feat(create-electron-app)!: move
initandimportout of core by @erickzhao in #4148 - perf(plugin-vite): run production builds in isolated subprocesses by @MarshallOfSound in #4163
- fix(plugin-vite): improve child logging by @erickzhao in #4165
- build: replace eslint with oxlint by @erickzhao in #4169
- chore: bump version to 8.0.0-alpha.5 by @erickzhao in #4173
- fix: prune final
requirecalls by @erickzhao in #4176 - chore: bump version to 8.0.0-alpha.6 by @erickzhao in #4177
Full Changelog: v8.0.0-alpha.4...v8.0.0-alpha.6