Léonard C. cc591ff7cb
fix(bytecodePlugin): support Electron 42 / V8 14.8 code cache
With build.bytecode enabled, apps crash at launch on Electron 42 (V8 14.8)
with "Invalid or incompatible cached data (cachedDataRejected)". Electron 41
(V8 14.6) is unaffected, on the same machine and arch.

On V8 14.8 the code cache is bound to a per-process-type snapshot/isolate
checksum AND flag hash (electron/electron#51831 gives each process type its
own Node startup snapshot), and vm.Script no longer runs a cache when the
loader supplies a placeholder source.

Fix: compile each chunk in the Electron process type that will consume it,
via vm.compileFunction:
- main chunks    -> the browser (main) process
- preload chunks -> a renderer process (a hidden window whose sandbox:false
                    preload compiles the chunk)
Load via vm.compileFunction under --no-lazy, which runs the cache and ignores
the placeholder body (made unique per file to avoid V8 compilation-cache
collisions). No header bytes are patched, so an incompatible cache fails
loudly instead of corrupting execution.

Note: bytecode compilation now spawns Electron processes (a main process, and
a hidden window for the preload). On Windows this works without an interactive
desktop (e.g. over SSH); on Linux a display may be required (e.g. xvfb).
2026-06-06 22:44:00 +02:00
2025-05-10 17:58:35 +08:00
2023-12-07 22:35:38 +08:00
2022-03-17 16:21:02 +08:00
2025-01-22 00:47:48 +08:00
2022-03-17 16:21:02 +08:00
2022-03-17 16:21:02 +08:00
2026-04-12 16:36:22 +08:00
2022-03-17 16:21:02 +08:00
2022-07-03 15:31:37 +08:00
2022-03-17 16:21:02 +08:00
2025-10-17 21:28:47 +08:00
2026-04-12 16:36:22 +08:00
2025-11-09 23:31:08 +08:00

electron-vite

Next generation Electron build tooling based on Vite

license

Documentation | Getting Started | create-electron

中文文档



Features

  • Vite powered and use the same way.
  • 🛠 Pre-configure with sensible defaults optimized for Electron.
  • 💡 Optimize asset handling for Electron main process.
  • 🚀 Fast HMR & hot reloading.
  • 🔥 Isolated build for multi-entry application development.
  • Simplify multi-threading development.
  • 🔒 Compile code to v8 bytecode to protect source code.
  • 🔌 Easy to debug in IDEs such as VSCode or WebStorm.
  • 📦 Out-of-the-box support for TypeScript, Vue, React, Svelte, SolidJS and more.

Usage

Install

npm i electron-vite -D

Development & Build

In a project where electron-vite is installed, you can use electron-vite binary directly with npx electron-vite or add the npm scripts to your package.json file like this:

{
  "scripts": {
    "start": "electron-vite preview",
    "dev": "electron-vite dev",
    "prebuild": "electron-vite build"
  }
}

Configuration

When running electron-vite from the command line, electron-vite will automatically try to resolve a config file named electron.vite.config.js inside project root. The most basic config file looks like this:

// electron.vite.config.js
export default {
  main: {
    // vite config options
  },
  preload: {
    // vite config options
  },
  renderer: {
    // vite config options
  }
}

Getting Started

Clone the electron-vite-boilerplate or use the create-electron tool to scaffold your project.

npm create @quick-start/electron@latest

Currently supported template presets include:

JavaScript TypeScript
vanilla vanilla-ts
vue vue-ts
react react-ts
svelte svelte-ts
solid solid-ts

Contribution

See Contributing Guide.

License

MIT © alex.wei

Description
Next generation Electron build tooling based on Vite 新一代 Electron 开发构建工具,支持源代码保护
Readme MIT 1.5 MiB
Languages
TypeScript 95.4%
JavaScript 4.6%