npm / @electron-forge/cli
@electron-forge/cli
What changed in @electron-forge/cli 7 to 8, from its official release notes, upgrade guides and advisories. Also covers @electron-forge/maker-rpm, @electron-forge/plugin-webpack. Sources checked 2026-10-20.
25 breaking2 deprecations8 new APIs and options5 behavior and defaults1 tooling6 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@electron-forge/cli 841 changes
Breaking changes 25
The Vite and webpack plugins emit main and preload bundles as .cjs; update configured main and preload paths.
Project initialization and import moved out of Forge; use create-electron-app for scaffolding and importing projects.
A single template per bundler replaces separate TypeScript templates; new projects use oxlint, oxfmt, moduleResolution: bundler, and a release script.
Custom makers, publishers, plugins, and string packagerConfig hooks must provide a default export.
Forge packages are ESM-only and require Node.js 22.17 or newer; existing Forge configurations still work in CommonJS or ESM projects.
The import command was removed; use create-electron-app to import projects.
The init command was removed; scaffold projects with create-electron-app instead.
The electronegativity plugin was removed.
plugin-fuses now requires @electron/fuses 2.x.
Config strings are no longer rendered as lodash templates or resolved as require:./path; use JavaScript in Forge config files instead.
Only the listed JavaScript and TypeScript Forge config file extensions are loaded; other languages and Babel-registered files are unsupported.
Use --from-package in place of make --skip-package.
S3 and GCS keyResolver now takes one object containing fileName, platform, arch, and version instead of positional arguments.
With listr2 v11, Listr.errors is null unless collectErrors is set.
The webpack loggerPort option was removed along with @electron-forge/web-multi-logger; press r in the terminal UI to restart the app.
maker-deb rejects unsupported architectures, including arm (armel); supported architectures are ia32, x64, arm64, armv7l, and mips64el.
maker-wix only builds x64, ia64, and x86 architectures.
MakerFlatpakOptionsConfig was renamed to MakerFlatpakConfigOptions.
Node.js 22.17.0 or newer is required to run Forge.
DMG output now goes into architecture-specific subdirectories; update CI upload globs.
PKG output now goes into architecture-specific subdirectories; update CI upload globs.
The exported GitHub publisher class is now named PublisherGitHub.
GCS public, private, and predefinedAcl settings were replaced by uploadOptions; uploads are no longer gzipped unless gzip is enabled there.
The Vite plugin targets Vite 8; upgrade Vite and port custom Rollup options to the Vite 8 API.
Custom devServer options must follow webpack-dev-server 5's API.
Deprecations 2
maker-appx is deprecated and now builds .msix through electron-windows-msix; move to maker-msix.
The publish command still works as a deprecated alias for release.
New APIs and options 7
deb and rpm makers add a typed copyright option.
maker-msix adds outputFileName to override the output filename.
The create-electron-app init command gains a flag to specify the Electron version.
Use release --from-make to publish artifacts from a previous make run; this replaces --from-dry-run.
Set hotRestart: true to opt in to main-process hot restart in the Vite plugin.
PKG notarization support was added.
Pass a package manager, including an exact version, when initializing projects; non-interactive init otherwise uses npm.
Behavior and default changes 4
The Vite plugin is stable, covered by semver, targets Vite 8, builds targets in isolated processes, supports main-process hot restart, and honors a custom server host.
GitHub asset upload progress is now shown at byte-level granularity.
make always saves its results, allowing release --from-make to publish artifacts built earlier, including in another CI job.
The webpack plugin displays compiler output as terminal tabs instead of using a browser logger on port 9000.
Tooling 1
The publish command is renamed to release to avoid conflict with npm publish; publish remains a deprecated alias.
Fixes and other changes 2
Plugins are initialized once per command; nested make and release steps no longer re-resolve the config.
The Vite plugin now honors a custom server.host when constructing the renderer development-server URL.
@electron-forge/cli 76 changes
New APIs and options 1
The init command adds the --electron-version flag, allowing developers to specify an Electron version when initializing a project.
Behavior and default changes 1
The Vite plugin is marked as experimental.
Fixes and other changes 4
Interactive mode now detects whether the process is attached to a TTY instead of always assuming it is.
The CLI now allows pre-release package manager ranges.
The template adds
private: trueto generated package configuration.The create-electron-app template adds the missing
repositoryfield.