关于react.js:Remix-后台桌面electronremixantdadmin

45次阅读

共计 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 而后就能够间接装置了

反对

目前作者长期处于爱发电的状态,如果本我的项目可能帮忙到你无妨请作者喝一杯咖啡,有你的反对,开源我的项目将失去更好的保护,也崔进输入更加高质量的代码,当然也能够参加到此我的项目中成为我的项目的参与者,同时冀望提出宝贵意见以便我的项目能失去更好的保护和倒退。

分享

感谢您抽出工夫来浏览这篇文章。如果它对您有帮忙或者启发,请思考给它一个点赞,这将激励咱们持续为您提供更好的内容。同时,咱们的公众号( 进二开物 )会不定期分享相似的内容,如果您感兴趣,欢送关注咱们。再次感谢您的浏览和反对!

正文完
 0