├── pnpm-workspace.yaml
├── assets
├── logo.ico
├── icons
│ ├── 16x16.png
│ ├── 24x24.png
│ ├── 32x32.png
│ ├── 48x48.png
│ ├── 64x64.png
│ ├── 96x96.png
│ ├── 128x128.png
│ ├── 256x256.png
│ ├── 512x512.png
│ └── 1024x1024.png
├── entitlements.mac.plist
└── icon.svg
├── test
└── dev-app-update.yml
├── src
├── main
│ ├── index.ts
│ ├── package.json
│ ├── logger
│ │ └── index.ts
│ ├── windows
│ │ ├── about.ts
│ │ ├── main.ts
│ │ ├── base.ts
│ │ ├── index.ts
│ │ └── update.ts
│ ├── store
│ │ └── index.ts
│ ├── rspack.config.ts
│ ├── utils
│ │ └── index.ts
│ └── core
│ │ └── index.ts
├── renderer
│ ├── styles
│ │ ├── reset.less
│ │ ├── fonts
│ │ │ ├── AlimamaFangYuanTiVF-Thin.woff
│ │ │ └── AlimamaFangYuanTiVF-Thin.woff2
│ │ ├── scroll-bar.less
│ │ └── common.less
│ ├── entry
│ │ ├── about.tsx
│ │ ├── home.tsx
│ │ └── update.tsx
│ ├── template.html
│ ├── components
│ │ ├── MenuBar
│ │ │ ├── index.less
│ │ │ ├── index.tsx
│ │ │ ├── MenuIcon.less
│ │ │ └── MenuIcon.tsx
│ │ ├── About
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── Home
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ │ ├── TextLine
│ │ │ └── index.tsx
│ │ └── AppUpdate
│ │ │ ├── index.less
│ │ │ └── index.tsx
│ ├── images
│ │ ├── maximize.svg
│ │ └── unmaximize.svg
│ ├── package.json
│ ├── hooks
│ │ ├── usePackageJson.ts
│ │ ├── useAppUpdate.ts
│ │ └── useDarkMode.ts
│ ├── utils
│ │ └── index.ts
│ └── rspack.config.ts
├── preload
│ ├── package.json
│ ├── index.ts
│ └── rspack.config.ts
├── common
│ ├── env.ts
│ └── constant.ts
└── @types
│ ├── global.d.ts
│ └── asset.d.ts
├── .gitignore
├── .npmrc
├── .prettierignore
├── prettier.config.js
├── scripts
└── clean.ts
├── tsconfig.json
├── .vscode
└── launch.json
├── README.md
├── eslint.config.mjs
├── .github
└── workflows
│ └── build.yml
└── package.json
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - 'src/*'
3 |
--------------------------------------------------------------------------------
/assets/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/logo.ico
--------------------------------------------------------------------------------
/test/dev-app-update.yml:
--------------------------------------------------------------------------------
1 | provider: github
2 | owner: RyanProMax
3 | repo: electron-react-rspack
4 |
--------------------------------------------------------------------------------
/src/main/index.ts:
--------------------------------------------------------------------------------
1 | import Core from './core';
2 |
3 | const core = new Core();
4 | core.startApp();
5 |
--------------------------------------------------------------------------------
/assets/icons/16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/16x16.png
--------------------------------------------------------------------------------
/assets/icons/24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/24x24.png
--------------------------------------------------------------------------------
/assets/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/32x32.png
--------------------------------------------------------------------------------
/assets/icons/48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/48x48.png
--------------------------------------------------------------------------------
/assets/icons/64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/64x64.png
--------------------------------------------------------------------------------
/assets/icons/96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/96x96.png
--------------------------------------------------------------------------------
/assets/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/128x128.png
--------------------------------------------------------------------------------
/assets/icons/256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/256x256.png
--------------------------------------------------------------------------------
/assets/icons/512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/512x512.png
--------------------------------------------------------------------------------
/src/renderer/styles/reset.less:
--------------------------------------------------------------------------------
1 | p {
2 | margin: 0;
3 | }
4 |
5 | body {
6 | margin: 0;
7 | padding: 0;
8 | }
9 |
--------------------------------------------------------------------------------
/assets/icons/1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/assets/icons/1024x1024.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependency directory
2 | node_modules
3 |
4 | # OSX
5 | .DS_Store
6 |
7 | build
8 | release
9 | .env
10 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | electron_mirror=https://npmmirror.com/mirrors/electron/
2 | registry=https://registry.npmmirror.com
3 | auto-install-peers=true
4 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
3 | dist
4 | output
5 | release
6 | *.log
7 | *.lock
8 | *.json
9 | *.md
10 | .DS_Store
11 |
--------------------------------------------------------------------------------
/src/renderer/styles/fonts/AlimamaFangYuanTiVF-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/src/renderer/styles/fonts/AlimamaFangYuanTiVF-Thin.woff
--------------------------------------------------------------------------------
/src/renderer/styles/fonts/AlimamaFangYuanTiVF-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyanProMax/electron-react-rspack/HEAD/src/renderer/styles/fonts/AlimamaFangYuanTiVF-Thin.woff2
--------------------------------------------------------------------------------
/src/preload/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "preload",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "rspack build",
6 | "analyze": "rspack build --analyze"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/renderer/entry/about.tsx:
--------------------------------------------------------------------------------
1 | import ReactDOM from 'react-dom/client';
2 | import About from '../components/About';
3 |
4 | const root = ReactDOM.createRoot(document.getElementById('root')!);
5 | root.render(
44 | {packageJson?.name ? packageJson.name.split('-').map(upperFirst).join(' ') : null} 45 |
46 |