Skip to content

v8.0.0-alpha.6

Pre-release
Pre-release

Choose a tag to compare

@electron-npm-package-publisher electron-npm-package-publisher released this 19 Mar 00:58
5663b52

The 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_mirror option. Use nightlyMirror instead.
    • Removed deprecated force option. Use cacheMode: ElectronDownloadCacheMode.WriteOnly instead.
  • @electron/notarize
    • Removed deprecated altool notarization strategy. The tool parameter is no longer used.
  • @electron/osx-sign
    • Removed deprecated signAsync, walkAsync, and flatAsync functions. The base sign, walk, and flat functions are now Promise-based exclusively.
  • @electron/packager
    • ASAR is now enabled by default with unpack: '**/{.**,**/}/**/*.node' (you likely can removed the auto-unpack-natives Forge plugin).
    • derefSymlinks now defaults to true.
    • Hook arguments are now consolidated into a single object parameter and hooks are promisified.
  • @electron/rebuild
    • Removed default export.
    • Removed unused nodeGypPath field from the Rebuilder object.
  • @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

Full Changelog: v8.0.0-alpha.4...v8.0.0-alpha.6