# electronUI
**Repository Path**: scyozo_0/electronUI
## Basic Information
- **Project Name**: electronUI
- **Description**: 企业级基于Electron + React + Koa + Typescript 技术栈实现的一套基础架构解决方案、快速开发、一键智能打包、快速交付
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://github.com/xeajs/electron
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 25
- **Created**: 2024-05-23
- **Last Updated**: 2024-05-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# @xeajs/electron
快速开始、渐进式、沉浸式、高可用、可配置、模块化、语义化、一键开发、一键打包。
## 系统架构
## Install
```bash
git clone https://github.com/xeajs/electron myapp
```
## 跨端
* exe Windows7、Window10 (x86、x64)
* app Darwin (Mac Os)
* deb Linux (Ubuntu)
## 技术栈
### `内核`
```js
electron ==> 客户端运行时
electron-builder ==> 客户端打包
```
### `主进程 - 本地服务服务端`
```js
Typescript
node
koa
nedb ==> Node嵌入式数据库、本地持久化、加密
...
```
### `渲染进程 - 窗口界面`
```js
Typescript
React
React-router
Mobx
axios
antd
dayjs ==> 日期处理工具、轻量级
...
```
### `CLI 构建`
```js
webpack
babel
babel/preset-typescript
...
```
### `CLI 效率、工具`
```js
prettier
eslint ==> 可配置开关、开发环境运行时
tslint ==> 可配置开关、开发环境运行时、子进程基于 tsc -w
husky
lint-staged
...
```
## 核心能力
* 提供持久化到本地磁盘的能力
* 自动检测/创建磁盘存储目录和文件
* 开箱即用的数据库环境 `nedb Nodejs 嵌入式数据库`
* 开箱即用的持久化配置文件 `setting.json`, `并在渲染进程基于mobx实时更新`
* 开箱即用的日志收集能力,和日志过期管理 `$$.log`
* 开放的扩展能力
* 提供开箱即用高度可配置的前端工程化打包环境
* 一键进入开发模式
* 一键打包构建软件包
* 自动分配版本打包号 (如:`Application Setup Version-BUILD_NUMBER.exe|app|deb`)
* 主进程编辑热重启
* 渲染进程编辑热替换 (热替换可以保留类似表单上次编辑的内容,体验更好)
* 内置git钩子,钩子触发 eslint 和 tslint,触发周期为 `git commit`
* 内置工程化脚本,可高度定制,自定义二次配置
* 内置代码编译脚本和Typescript编译 (Typescript为主)
* 内置全局命名空间 `$$`, 提供全局自定义功能
* $$.Event 内置发布订阅辅助工具,基于 ts 约束 订阅事件名字
* $$.log 开箱即用的日志系统
* $$.** 通用工具函数 查看 `typings`
* 业务代码全程使用`Typescript`编写
* 工程化相关代码使用 `Nodejs、JavaScript` 编写
* 区分前端代码和主进程代码分开编译和引用
* 内置 vscode 编辑器的项目配置
* sort-imports vscode 插件提供自动对 import 排序
* `antd`组件库 主题配置
* 基于 React.lazy 和 React.Suspense 实现前端路由懒加载
* styled-jsx `css in js 方案`
## styled-jsx
* 模式 css in js
* 框架 styled-jsx
* vscode 插件
* github [https://github.com/Divlo/](https://github.com/Divlo/)
* 代码高亮插件 插件市场搜索 `divlo.vscode-styled-jsx-syntax`
* 代码提示插件 插件市场搜索 `divlo.vscode-styled-jsx-languageserver`
* 注意事项, 样式输出报错, 大括号换行无法检测到样式
* @See:
错误写法
```jsx
```
正确写法
``` jsx
```
## TODO
* [Issues](https://github.com/xeajs/electron/issues)
## CHANGELOG
* [changelog](docs/CHANGELOG.md)
## 写在最后
1. 欢迎交流
1. 欢迎体验
1. 欢迎 Issues
1. 感谢 Star
1. [联系作者](https://xeajs.gitee.io/about)