• 简体中文
  • 快速开始

    Note

    本指南假定你已了解 Electron 与 Rsbuild。推荐阅读 Electron 指南Rsbuild 指南。领域词汇(角色、会话、模式)见 概念

    概览

    Rselectron 是基于 Rsbuild 的 Electron 构建工具,目标是更快、更简单的开发体验。它提供:

    • 显式的 dev / build / preview / inspect 命令,覆盖 Electron 的双环境(Node.js 主进程与浏览器渲染进程)。
    • 单一配置入口声明 main、preload、renderer,并带有面向 Electron 的默认值。
    • 渲染进程 HMR;在启用时支持主进程与预加载热重载。
    • 底层是 Rsbuild / Rspack。

    安装

    Prerequisites

    Rselectron 需要 Node.js >=20.19.0,以及 @rsbuild/core peer(^2.0.0)。Electron 是可选 peer — 需要启动应用时在项目根安装。受支持的 Electron 版本见 兼容性

    npm
    yarn
    pnpm
    bun
    deno
    npm add @rselectron/core @rsbuild/core electron -D

    命令行界面

    安装后可运行 npx rselectron,或调用已安装的 CLI:

    rselectron dev

    构建主进程与预加载,为渲染进程启动开发服务器,并启动 Electron。

    rselectron build

    构建已配置的主进程、预加载与渲染进程源码。打包安装器之前先跑这一步。

    rselectron preview

    构建(可用 --skip-build 跳过)后启动 Electron,预览生产构建。

    rselectron inspect

    打印规范化配置,不构建也不启动。

    完整选项见 命令行界面。程序化用法见 JavaScript API

    配置 Rselectron

    运行 CLI 时,Rselectron 会在项目根解析配置文件(例如 rselectron.config.ts)。最小配置如下:

    rselectron.config.ts
    import { defineConfig } from '@rselectron/core';
    
    export default defineConfig({
      main: {
        root: './src/main',
        source: { entry: { index: './index.ts' } },
      },
      preload: {
        root: './src/preload',
        source: { entry: { index: './index.ts' } },
      },
      renderer: {
        root: './src/renderer',
        source: { entry: { index: './index.ts' } },
      },
    });

    main / preload / renderer 每一项都是完整的 Rsbuild 配置。仅在有意省略某一进程时才不要配置它。细节见 配置

    Electron 入口

    把 Electron 的应用入口指到主进程构建产物。未设置 output.distPath 时,Rselectron 会按约定角色产物目录,在应用根下使用 out/<role>。上面的最小配置配合经典(非 "type": "module")包时,package.json 可以是:

    package.json
    {
      "name": "electron-app",
      "version": "1.0.0",
      "main": "./out/main/index.js"
    }

    保持 main(或配置里的 electron.entry)与真实主进程产物路径一致。入口扩展名跟随 Main 格式 / "type" 策略(例如 "type": "module" 且推导为 ESM 时使用 index.mjs),只有需要自定义布局时才显式设置 output.distPath

    从示例起步

    仓库里的学习示例(vanilla 与 React):

    复制示例、安装依赖,然后运行 npm run dev

    获取帮助

    遇到问题先查 故障排除,再搜索 GitHub issue。没有合适条目就开新 issue。