共计 2812 个字符,预计需要花费 8 分钟才能阅读完成。
Remix Antd Admin Electron
基于 Electron
/Remix
/Antd
/Echarts
/Styled-components
的管理系统,可能疾速初始化我的项目。
我的项目地址
electron repo: https://github.com/yyong008/remix-antd-admin-electron
Web websit: https://remix-antd-admin.vercel.app/
以后 Remix 版本
1.51.0
设计动机
Remix 的设计范式简略不便,整个利用就是一个路由器,并且是前后端买通的路由器。表单设计使得 Remix 的表单能力更加简略不便。在后盾管理系统中,数据展现与数据录入,以及页面切换占据重要地位,Remix 设计仿佛特贴的简略贴切。集成 Antd UI 我的项目能力,能疾速实现具备丑陋 UI 简略的后盾管理系统。
Core Packages
electron package | desc |
---|---|
remix-electron | Electron 集成到 Remix ⚛💿 |
electron | 外围包 |
@remix-run/server-runtime | remix 运行时 |
nodemon | 监听文件自动更新文件 |
减少右面主文件
- desktop/main.js
const {initRemix} = require("remix-electron");
const {app, BrowserWindow, dialog} = require("electron");
const {join} = require("node:path");
/** @type {BrowserWindow | undefined} */
let win;
/** @param {string} url */
async function createWindow(url) {win = new BrowserWindow({ show: false});
await win.loadURL(url);
win.show();
if (process.env.NODE_ENV === "development") {win.webContents.openDevTools();
}
}
app.on("ready", async () => {
try {if (process.env.NODE_ENV === "development") {
const {
default: installExtension,
REACT_DEVELOPER_TOOLS,
} = require("electron-devtools-installer");
await installExtension(REACT_DEVELOPER_TOOLS);
}
const url = await initRemix({serverBuild: join(__dirname, "build") });
await createWindow(url);
} catch (error) {dialog.showErrorBox("Error", getErrorStack(error));
console.error(error);
}
});
/** @param {unknown} error */
function getErrorStack(error) {return error instanceof Error ? error.stack || error.message : String(error);
}
减少 Remix 配置文件
// remix.config.js
/**
* @type {import('@remix-run/dev/config').AppConfig}
*/
module.exports = {
serverBuildPath: "desktop/build/index.js",
// ...
};
减少 nodemon.json
{
"$schema": "https://json.schemastore.org/nodemon.json",
"exec": "electron",
"watch": ["desktop"],
"ignore": ["desktop/build"],
"execMap": {"ts": "ts-node"}
}
外围包
包 | 阐明 |
---|---|
remix | 1.51.0(外围包) |
antd | 5.3.1(外围 UI 包) |
styled-components | css-in-js 解决方案(外围 css 解决方案) |
remix-utils | Remix 的 常用工具,例如:仅仅在服务端然组件 <ClientOnly> 组件(外围工具) |
国际化
国际化包 | 阐明 |
---|---|
remix-i18next | 很容的形式翻译你的 remix 利用 |
图表库
选图表留神反对 ssr
图表库 | 阐明 |
---|---|
echarts | 5.3.9 次要图表(思考 Remix 须要服务端渲染等问题) |
echarts-for-react | 基于 React 封装 echarts 组件 |
react-mind | React 脑图 |
react-mindmap | React 脑图 |
react-wordcloud | React 云词图 反对 ssr |
reactflow | 流程图 |
echarts-liquidfill-ssr | 水滴图 |
裁剪工具
- react-advanced-cropper
pnpm install react-advanced-cropper
长处
简单明了的路由书写范式,简略的数据获取和表单能力
- 弱小的文件路由范式
- loader 获取数据
- action 解决表单数据
npmrc config
# 将 pnpm 变成扁平化架构
node-linker=hoisted
# 在国内应用 pnpm 装置 electron 须要配置一下 electron 的下载门路
electron_mirror="https://npm.taobao.org/mirrors/electron/"
应用办法
Use pnpm
# server
pnpm run dev # pnpm dev
# build
pnpm run build # pnpm build
格式化工具
"scripts": {"prettier": "prettier --write app/ public/locales"}
格式化代码命令
pnpm run prettier
构建
pnpm run build
构建结束,如果失常会在 dist 目录下生成一个 exe 后缀的文件。
dist/remix-antd-admin Setup <package.json version>.exe
而后就能够间接装置了
反对
目前作者长期处于爱发电的状态,如果本我的项目可能帮忙到你无妨请作者喝一杯咖啡,有你的反对,开源我的项目将失去更好的保护,也崔进输入更加高质量的代码,当然也能够参加到此我的项目中成为我的项目的参与者,同时冀望提出宝贵意见以便我的项目能失去更好的保护和倒退。
分享
感谢您抽出工夫来浏览这篇文章。如果它对您有帮忙或者启发,请思考给它一个点赞,这将激励咱们持续为您提供更好的内容。同时,咱们的公众号( 进二开物
)会不定期分享相似的内容,如果您感兴趣,欢送关注咱们。再次感谢您的浏览和反对!
正文完