v6.0.0-beta.0 (2026-04-12 )
refactor!: simplify resolve config and isolate user config for sub-builds
fix!: compatible with rollupOptions and rolldownOptions
fix: chunk filename is wrong in ES mode
v6.0.0-beta.0 (2026-04-09 )
refactor: ?modulePath sub-build output strategy
fix(asset): isolate asset caches per environment
fix: use the environment api in plugins
fix: skip TTY terminal manipulations in CI environments
fix(deps)!: update vite to v8 (#894 )
fix: Typescript compiler option 'outDir' must be located inside Rollup 'dir' option
fix(isolateEntries): handle non-TTY stdout in build reporter (#887)
chore(deps): update cac to v7
chore(deps): update globals to v17
chore(deps): update eslint and @eslint/js to v10
chore(deps): update all non-major dependencies
feat(config): add build.externalizeDeps and build.bytecode config options to replace externalizeDepsPlugin and bytecodePlugin
feat: reporter plugin for isolated builds
feat: enhanced string protection
feat: add isolatedEntries option for preload and renderer to build entries as standalone bundles #154
refactor(config): move the isolateEntries options to the build option
refactor: deprecated externalizeDepsPlugin and bytecodePlugin
refactor(config)!: remove function resolution for nested config fields
refactor(asset): remove redundant path normalization
refactor: split electron plugin into preset and validator plugins
refactor(config)!: restructure Electron Vite config interfaces
refactor(build): simplify build logic
refactor: replace JSON.parse/stringify with manual deep clone
refactor(bytecodePlugin): improved bytecode bundle generation and made a new string protection plugin
refactor(modulePath): better support for tree-shaking and code-splitting
refactor: remove Electron 18, 19, 20, 21 build compatilibity target
perf(buildReport): exclude node_modules from watch list
perf(isolateEntries): transform log
perf(isolateEntries): optimize entries transformation
perf: build compatibility target for Electron 39
perf(plugin): more efficient module filtering via regular expressions
perf(plugin): no need to cache sourcemap option
perf(plugin): lazily initialize MagicString and remove the redundant pre-check
perf(bytecodePlugin): better way to count bytecode chunks
perf(plugin): enhance path resolution using import.meta.dirname for ES modules
fix(modulePath): rewrite the build input instead of merging
fix(asset): normalize imported public asset chunk path
fix: avoid duplicate chunk emission
fix(modulePath): prevent duplicate asset emission
fix(modulePath): support watch mode
chore: fix jsdoc
chore: improve logging message clarity and consistency
chore(deps): update all non-major dependencies
chore: update eslint config
chore: replace tseslint.config with defineConfig
chore: remove redundant external id
chore: rename the file esm to esmShim
docs: update
v5.0.0-beta.3 (2025-11-01 )
See v5.0.0-beta.3 changelog
v5.0.0-beta.2 (2025-10-30 )
See v5.0.0-beta.2 changelog
v5.0.0-beta.1 (2025-10-29 )
See v5.0.0-beta.1 changelog
v5.0.0-beta.0 (2025-10-19 )
See v5.0.0-beta.0 changelog
perf: build compatibility target for Electron 38
refactor!: bump required node version to 20.19+, 22.12+
fix(deps)!: update Vite to v7 and remove cjs build
fix: use import type for type-only imports
perf: build compatibility target for Electron 36 (#766 )
perf: build compatibility target for Electron 37
chore(deps): update pnpm to v10
chore(deps): update all non-major dependencies
chore(deps): update lint-staged to v16
v4.0.0-beta.0 (2025-06-28 )
See v4.0.0-beta.0 changelog
fix(bytecodePlugin): optimize 'use strict' directive replacement (#681 )
perf: build compatilibity target for Electron 35 (#729 )
chore(deps): update all non-major dependencies
chore(deps): update globals to v16
chore(deps): update esbuild to v0.25
v3.1.0-beta.0 (2025-03-12 )
See v3.1.0-beta.0 changelog
feat: resolve conditions for preload
perf: build compatilibity target for Electron 32
perf: build compatilibity target for Electron 33 (#651 )
perf: build compatilibity target for Electron 34
chore: move to eslint flat config
chore(deps): update all non-major dependencies
chore(deps): update @rollup/plugin-node-resolve to v16
chore(deps): update @rollup/plugin-typescript to v12
chore(deps): update esbuild to v0.24
chore(deps): update vite to v6
chore(deps): update @type/node to v22
v3.0.0-beta.0 (2025-01-22 )
See v3.0.0-beta.0 changelog
feat: resolve import.meta.[dirname|filename] to support CommonJS format
fix: don't handle module ID that begin with \0 (#530 )
fix: not using the mode from the config file (#539 )
fix: default mode should not overrite user config mode
perf: build compatilibity target for Electron 31
perf: improve cjs shim
chore(deps): update all non-major dependencies
chore(deps): update @typescript-eslint/* to v7
chore(deps): update esbuild to v0.21
feat: export mergeConfig from vite (#471 )
fix(types): narrow down the return type of defineConfig
perf: build compatilibity target for Electron 30
refactor(config): defineConfig types
chore: fix camelcase typo
chore: use rollup-plugin-rm to clean dist
feat: easy way to fork processes and use workers
fix: config via build.lib fails when default entry point not found (#393 )
perf: build compatilibity target for Electron 29
perf: allow integrating more complex render solutions (#412 )
perf(bytecodePlugin): warn that strings cannot be protected when minification is enabled (#417 )
feat: bump minimum node version to 18
feat: migrate to ESM
feat: support vite 5
feat: add package.json to export map
feat: support ESM in Electron
feat: env variables prefixed with VITE_ will be shared in main process and renderer
feat: support for passing arguments to electron in dev and preview commands (#339 )
feat: config file supports "type": "module" in package.json
fix: emit assets when ssr is enabled
fix: externalizeDepPlugin not work
fix: electron's export subpaths also need to be externalized (#372 )
perf: improve package.json resolve
perf: use magic-string hires boundary for sourcemaps
perf: build compatilibity target for Electron 28
pref: resolve import meta url in CommonJS format
perf(worker): ESM syntax
perf: package version
perf: dev error message
perf(externalizeDepsPlugin): use cached package data to improve performance
perf: loadEnv api also needs to load shared env variables prefixed with VITE_
refactor: build
refactor: file hashes use url-safe base64 encoded hashes in vite 5 (rollup 4)
refactor: remove Electron 11, 12 build compatilibity target
refactor: use dynamic import directly
build: use rollup-plugin-dts
chore(deps): update all non-major dependencies
chore(deps): update lint-staged to v15
chore(deps): update eslint-config-prettier to v9
chore(deps): update @rollup/plugin-typescript to v11
chore(deps): update rollup to v4
chore(deps): update vite to v5
chore(deps): update esbuild to v0.19
chore(deps): update typescript to 5.3.3
chore: improve prettier config
chore: update homepage
v2.0.0-beta.4 (2024-01-06 )
See v2.0.0-beta.4 changelog
v2.0.0-beta.3 (2024-01-04 )
See v2.0.0-beta.3 changelog
v2.0.0-beta.2 (2023-12-19 )
See v2.0.0-beta.2 changelog
v2.0.0-beta.1 (2023-12-14 )
See v2.0.0-beta.1 changelog
v2.0.0-beta.0 (2023-12-13 )
See v2.0.0-beta.0 changelog
feat(cli): support --noSandbox option for dev and preview command
perf: build compatilibity target for Electron 27
feat(cli): supports specifying electron entry file (#270 )
fix(externalizeDepsPlugin): supports subpath
perf: build compatilibity target for Electron 26
chore(types): add .json?commonjs-external&asset typing
chore: remove preinstall script
feat(cli): add CLI --inspect[-brk] to support debugging without IDEs (#231 )
feat(types): add process.env.ELECTRON_RENDERER_URL type
feat(types): add Vite importMeta types
perf: spawn Electron process using parent's stdios (#236 )
chore: update user config interface jsdoc
chore(deps): update pnpm to v8
chore(deps): update prettier to v3
chore(deps): update @typescript-eslint/* to v6
fix: remove node resolve condition for preload #204
fix(asset): asset handling error when hot reloading
chore(deps): update all non-major dependencies
chore(deps): update fs-extra to v11
chore(deps): update @types/node to v18
chore(deps): update typescript to 5.0.4
chore(deps): update vite to 4.4.2
chore(deps): update esbuild to v0.18
chore(deps): update rollup to 3.26.2
fix(bytecodePlugin): bytecode loader relative path is incorrect
perf: ignore browser field and additional node condition for main config
feat: supports ES build target for renderer #174
revert: chore: remove process env define #159
perf: build compatilibity target for Electron 25
chore(deps): update all non-major dependencies
feat(cli): add --rendererOnly flag to dev command
perf: build compatilibity target for Electron 24
chore: remove process env define
chore: typo error messages
fix(bytecodePlugin): bytecode loader is not referenced correctly in the chunks
fix(bytecodePlugin): sub-chunks are not compliled in vite 4
perf: always disable build.modulePreload in main and preload config
chore(deps): update esbuild to 0.17
chore(deps): update vite to 4.2.1
feat: support for renderer debugging #130
fix(asset): asset path is not resolved correctly when outDir is specified #117
fix: specified renderer outDir is not parsed correctly
fix(bytecodePlugin): not work in monorepo #128
perf: build compatilibity target for Electron 23
perf: print log
chore(deps): update all non-major dependencies
chore(deps): update vite to 4.1.4
chore(deps): update rollup to 3.18
chore(deps): update magic-string to 0.30.0
feat(bytecodePlugin): protect strings #91
fix(bytecodePlugin): escape protected strings (thanks to @jeremyben )
feat(asset): support for WebAssembly in the main process
fix(asset): wasm must be suffixed with ?loader
feat: static asset handling
fix: output duplicate log in vscode debugging #75
chore(bytecodePlugin): KiB to kB
chore(worker): use toRelativePath helper
chore(deps): update all non-major dependencies
chore(deps): update vite to 4.0.4
feat: vite 4.x support #69
fix: NODE_ENV is incorrect in vite 4.x #70
fix: invalid output format check
fix: output format check
chore(deps): update all non-major dependencies
chore(deps): update esbuild and magic-string
chore(deps): update vite to 4.0.0
feat: support mode and command conditional config
feat: specify env prefixes for vite's loadEnv and export it
perf: build compatilibity target for Electron 22
perf: do not externalize node builtin modules for the renderer #61
fix(bytecodePlugin): replace bytecode module regex
feat: support for node worker
refactor: plugins
fix(swcPlugin): unreachable code
fix(bytecodePlugin): bytecode loader injection and chunk module parsing errors #49
fix: incorrect replace __dirname/__filename in config file
fix: output format error under multiple entries
feat: support monorepo (by @ianstormtaylor)
feat: add --skipBuild flag to preview command
feat: make a SWC plugin to support TypeScript decorators (emitDecoratorMetadata)
fix: use modulePreload.polyfill instead polyfillModulePreload
chore: update deps
feat: externalize deps plugin
feat: export splitVendorChunk from vite
fix: compatible with the latest version of Electron
refactor: load config file
perf: the bytecodePlugin transform arrow function by default
perf: disable gzip-compressed size reporting, increase build performance
perf: bytecode compilation log print format
perf: build compatilibity target for Electron 21
feat: source code protection
fix: specify a config file error
fix: in the specified non-production mode, the base path is wrong
perf: cache electron executable path
chore: add electron-vite mode node env
chore: use node prefix
feat: the main process and preload scripts support hot reloading #7
feat: add sourcemap cli options for debugging
chore: update deps
chore: use vite@3
fix: can not get import meta env variables in renderer
feat: define env prefix
feat: new official website released
fix: error occurs when the preload config is a function (by @Beiluola)
fix: ELECTRON_RENDERER_URL is incorrect when host is true (by @Beiluola)
feat: add sqlite3 module to rollup external option
fix: throw error when vite.config.* file in root (#3 )
feat: export splitVendorChunkPlugin from vite
perf: build target for Electron 19
fix: an error occurred when tsconfig file changed
perf: no need to polyfill Module Preload for the Electron renderer (82477b )