Skip to content

【WIP】Explore the next generation Electron build tooling based on Rsbuild.

License

Notifications You must be signed in to change notification settings

electron-rsbuild/electron-rsbuild

Repository files navigation

electron-rsbuild

WIP, do not use it directly in the production environment.

Export Next generation Electron build tooling based on Rsbuild.

Release

Usage

by npm package

  1. install core package:
pnpm add @electron-rsbuild/core
  1. update package.json file like this:
{
  "scripts": {
    "start": "electron-rsbuild preview",
    "dev": "electron-rsbuild dev",
    "build": "electron-rsbuild build"
  }
}
  1. create a electron.rsbuild.config.ts file to your project root directory:
import { resolve } from 'path';
import { defineConfig } from '@rsbuild/core';
import { pluginReact } from '@rsbuild/plugin-react';

export default defineConfig({
  root: resolve(__dirname, '.'),
  environments: {
    // main
    main: {},
    // preload
    preload: {},
    // renderer
    renderer: {
      plugins: [pluginReact()],
    },
  },
});

by rsbuild plugin

Note that if you use electron-rsbuild as a plugin, you will be missing a lot of built-in features.

pnpm add -D @rsbuild/plugin-main @rsbuild/plugin-preload @rsbuild/plugin-renderer

update rsbuild.config.ts:

import { resolve } from 'path';
import { defineConfig } from '@rsbuild/core';
import { pluginReact } from '@rsbuild/plugin-react';
import { mainPlugin } from '@electron-rsbuild/plugin-main';
import { preloadPlugin } from '@electron-rsbuild/plugin-preload';
import { rendererPlugin } from '@electron-rsbuild/plugin-renderer';

export default defineConfig({
  root: resolve(__dirname, '.'),
  environments: {
    // main
    main: {
      plugins: [mainPlugin()],
    },
    // preload
    preload: {
      plugins: [preloadPlugin()],
    },

    // renderer
    renderer: {
      plugins: [pluginReact(), rendererPlugin()],
    },
  },
});

package.json:

  "scripts": {
    "dev": "rsbuild dev",
    "build": "rsbuild build"
  }

Playground Snapshot

Use npm create [email protected] create a electron-rsbuild project:

playground-install-npm

Use pnpm run dev launch electron:

playground-demo

Benchmark TODO

Reference

🤝 Contribution

New contributors welcome!

Please read the Contributing Guide.

📖 License

Electron-Rsbuild is licensed under the MIT License.