umi-plugin-electron-builder 项目教程
2024-08-17 18:34:12作者:凌朦慧Richard
1. 项目的目录结构及介绍
umi-plugin-electron-builder/
├── src/
│ ├── main/
│ │ └── main.ts
│ ├── renderer/
│ │ ├── pages/
│ │ ├── app.tsx
│ │ └── index.tsx
├── package.json
├── umirc.js
└── README.md
src/main/main.ts: Electron 主进程文件,负责启动和管理 Electron 窗口。src/renderer/pages/: React 组件和页面文件,用于构建应用的用户界面。src/renderer/app.tsx: 渲染进程的入口文件,初始化 React 应用。src/renderer/index.tsx: 渲染进程的根组件。package.json: 项目依赖和脚本配置文件。umirc.js: Umi 配置文件,用于配置插件和路由等。README.md: 项目说明文档。
2. 项目的启动文件介绍
主进程启动文件
src/main/main.ts 是 Electron 的主进程启动文件,主要负责创建和管理应用窗口。以下是一个简单的示例:
import { app, BrowserWindow } from 'electron';
import path from 'path';
let mainWindow: BrowserWindow | null = null;
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
},
});
mainWindow.loadURL('http://localhost:8000');
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
if (mainWindow === null) {
createWindow();
}
});
渲染进程启动文件
src/renderer/app.tsx 是 React 应用的入口文件,负责初始化 React 应用。以下是一个简单的示例:
import React from 'react';
import ReactDOM from 'react-dom';
import { ConfigProvider } from 'antd';
import zhCN from 'antd/lib/locale/zh_CN';
import App from './App';
ReactDOM.render(
<ConfigProvider locale={zhCN}>
<App />
</ConfigProvider>,
document.getElementById('root')
);
3. 项目的配置文件介绍
package.json
package.json 文件包含了项目的依赖、脚本和其他元数据。以下是一个示例:
{
"name": "umi-plugin-electron-builder",
"version": "1.0.0",
"main": "dist/main/main.js",
"scripts": {
"start": "umi dev",
"build": "umi build",
"electron:dev": "umi dev electron",
"electron:build": "umi build electron"
},
"dependencies": {
"umi": "^3.0.0",
"electron": "^12.0.0"
},
"devDependencies": {
"umi-plugin-electron-builder": "^1.0.0"
}
}
umirc.js
umirc.js 文件是 Umi 的配置文件,用于配置插件、路由和其他 Umi 相关设置。以下是一个示例:
export default {
plugins: [
['umi-plugin-electron-builder', {
mainFile: 'src/main/main.ts',
}],
],
routes: [
{ path: '/', component: 'index' },
],
};
通过以上配置,你可以轻松地使用 umi-plugin-electron-builder 插件来构建和打包 Electron 应用。
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
项目优选
收起
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
Ascend Extension for PyTorch
Python
758
968
昇腾LLM分布式训练框架
Python
186
231
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
699
1.4 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
879
2.03 K
暂无描述
Dockerfile
780
5.08 K
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
70
22
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.09 K
217