Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

WinJS 版本的 soybean-admin

License

NotificationsYou must be signed in to change notification settings

winjs-dev/winjs-soybean-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 一个基于WinJS 重构的现代化企业级中后台管理系统,支持多构建工具(Vite 6.x、Webpack、Rsbuild)打包,提供完整的开发工具链和最佳实践配置。

📋 项目简介

本项目是基于流行的SoybeanAdmin 使用WinJS 框架进行重构的企业级中后台管理系统。项目保持了原有的业务逻辑和功能特性,同时利用 WinJS 的多构建工具支持能力,让开发者可以灵活选择Vite 6.xWebpack 5Rsbuild 作为构建工具,满足不同项目场景的需求。

✨ 重构亮点

  • 🔧多构建工具支持:同一套代码,支持 Vite 6.x、Webpack、Rsbuild 三种构建方式
  • 📦Monorepo 架构:采用 pnpm workspace 管理多包结构,代码复用性更强
  • 🏗️WinJS 加持:享受 WinJS 元框架带来的开发体验提升
  • 🔄业务代码复用:保持原有 SoybeanAdmin 的核心功能,无缝迁移

🚀 技术栈

核心框架

  • Vue 3.x - 渐进式 JavaScript 框架,使用 Composition API
  • Vue Router 4.x - 官方路由管理器,支持动态路由
  • Pinia 3.x - 新一代状态管理库
  • WinJS 0.16.x - 企业级前端开发框架,支持多构建工具

UI 组件库

  • Naive UI 2.42.x - 现代化 Vue 3 组件库
  • UnoCSS - 原子化 CSS 引擎
  • @iconify/vue - 图标组件库
  • Echarts 5.6.x - 数据可视化图表库

构建工具(多选一)

  • Vite 6.x - 极速的前端构建工具(默认)
  • Webpack - 成熟的模块打包工具
  • Rsbuild - 基于 Rspack 的构建工具

开发语言

  • TypeScript 5.x - 类型安全的 JavaScript 超集
  • Sass/SCSS - CSS 预处理器
  • Less - CSS 预处理器(可选)

代码质量

  • ESLint - JavaScript/TypeScript 代码检查
  • Prettier - 代码格式化工具
  • Stylelint - CSS/Sass 样式检查
  • F2ELint 3.x - 前端代码规范工具
  • Husky - Git hooks 管理
  • Lint-staged - 暂存文件检查

工程化工具

  • PNPM - 快速、节省磁盘空间的包管理器
  • Cross-env - 跨平台环境变量设置
  • Commitlint - Git 提交信息规范检查
  • @sa/scripts - 自定义脚本工具集

✨ 功能特性

🏗️ 架构特性

  • 🔧多构建工具支持 - 同一套代码支持 Vite、Webpack、Rsbuild 三种构建方式
  • 📦Monorepo 架构 - 基于 pnpm workspace 的多包管理
  • 🎯开箱即用 - 预配置完整的开发环境和工具链
  • 🔄模块联邦 - 支持微前端架构,便于大型项目拆分,基于 umijs 的 mfsu 实现

🎨 界面功能

  • 📱响应式设计 - 完美适配桌面端、平板、移动端
  • 🌗主题切换 - 支持亮色/暗色主题,多种主题色配置
  • 🎭布局模式 - 支持垂直、水平、混合等多种布局模式
  • 📋标签页管理 - Chrome 风格的多标签页,支持缓存和拖拽
  • 🔍全局搜索 - 快速搜索菜单和功能
  • 🌐国际化 - 完整的中英文支持

🛡️ 权限系统

  • 🔐用户认证 - 完整的登录、登出、token 刷新机制
  • 👥角色权限 - 基于角色的权限控制(RBAC)
  • 🛣️路由守卫 - 动态路由,根据权限生成菜单
  • 🔒页面权限 - 细粒度的页面访问控制

🚀 开发体验

  • 🔍开发调试 - 完善的 Source Map 和热更新
  • 📊代码质量 - 集成 ESLint、Prettier、Stylelint 等工具
  • 🧪类型安全 - 完整的 TypeScript 类型定义
  • 🎨样式方案 - UnoCSS + Sass/SCSS,支持原子化 CSS
  • 🌐网络请求 - 基于 axios 的统一请求封装,支持拦截器
  • 🚀构建优化 - 代码分割、压缩、缓存策略

🛠️ 快速开始

环境要求

  • Node.js >= 18.0.0
  • PNPM >= 10(推荐)或 npm >= 8

安装依赖

# 推荐使用 pnpm(项目采用 monorepo 架构)pnpm install# 或使用 npmnpm install

开发调试

# 启动开发服务器(默认使用 Vite)pnpm dev# 或者pnpm start

访问http://localhost:8000 查看应用

构建工具选择

本项目支持三种构建工具,可根据项目需求选择:

1. 使用 Webpack(默认)

# 开发pnpm dev# 构建pnpm build# 预览pnpm preview

2. 使用 Vite

# 通过 WinJS 配置切换到 Vite# 在 .winrc.ts 中配置 vite: {}# 开发pnpm dev# 构建pnpm build

3. 使用 Rsbuild

# 通过 WinJS 配置切换到 Rsbuild# 在 .winrc.ts 中注释 vite: {} 和 mfsu 相关,然后配置 rsbuild: {}# 开发pnpm dev# 构建pnpm build

项目初始化

# 项目初始化(安装后自动执行)pnpm setup# 手动执行初始化pnpm run setup

📁 项目结构

winjs-soybean-admin/├── packages/                   # Monorepo 子包│   ├── alova/                 # Alova 请求库封装│   ├── axios/                 # Axios 请求库封装│   ├── color/                 # 颜色工具库│   ├── hooks/                 # 通用 Hooks│   ├── materials/             # 物料组件库│   ├── scripts/               # 脚本工具集│   ├── uno-preset/            # UnoCSS 预设│   └── utils/                 # 工具函数库├── src/                       # 主应用源码│   ├── assets/               # 静态资源│   │   ├── imgs/            # 图片资源│   │   └── js/              # JS 资源│   ├── components/           # 通用组件│   │   ├── advanced/        # 高级组件│   │   ├── common/          # 公共组件│   │   └── custom/          # 自定义组件│   ├── constants/           # 常量定义│   ├── hooks/               # 业务 Hooks│   │   ├── business/        # 业务逻辑 Hooks│   │   └── common/          # 通用 Hooks│   ├── icons/               # SVG 图标│   ├── layouts/             # 布局组件│   │   ├── base-layout/     # 基础布局│   │   ├── blank-layout/    # 空白布局│   │   └── modules/         # 布局模块│   ├── locales/             # 国际化│   │   └── langs/           # 语言包│   ├── plugins/             # 插件配置│   ├── router/              # 路由配置│   │   ├── elegant/         # 优雅路由│   │   ├── guard/           # 路由守卫│   │   └── routes/          # 路由定义│   ├── service/             # 服务层│   │   ├── api/             # API 接口│   │   └── request/         # 请求封装│   ├── store/               # 状态管理│   │   ├── modules/         # Store 模块│   │   └── plugins/         # Store 插件│   ├── styles/              # 样式文件│   │   ├── css/             # CSS 文件│   │   └── scss/            # SCSS 文件│   ├── theme/               # 主题配置│   ├── typings/             # 类型定义│   ├── utils/               # 工具函数│   ├── views/               # 页面组件│   │   ├── _builtin/        # 内置页面│   │   └── home/            # 主页│   ├── app.js               # 应用入口配置│   └── Main.vue             # 根组件├── .winrc.ts                  # WinJS 配置文件├── package.json               # 项目依赖配置├── pnpm-workspace.yaml        # PNPM 工作区配置├── tsconfig.json              # TypeScript 配置├── uno.config.ts              # UnoCSS 配置├── .eslintrc.js               # ESLint 配置├── .prettierrc.js             # Prettier 配置├── .stylelintrc.js            # Stylelint 配置├── f2elint.config.js          # F2ELint 配置├── commitlint.config.js       # Commitlint 配置└── README.md                  # 项目说明文档

🔧 开发指南

代码规范

项目集成了完整的代码规范工具链:

# 代码检查(ESLint + Stylelint)pnpm lint# 代码格式化(Prettier)pnpm format# F2ELint 扫描pnpm f2elint-scan# F2ELint 修复pnpm f2elint-fix# Git 提交(规范化提交信息)pnpm commit# 中文提交信息pnpm commit:zh

WinJS 配置

.winrc.ts 中进行项目配置:

import{defineConfig}from'@winner-fed/winjs';exportdefaultdefineConfig({// 包管理器npmClient:'pnpm',// 插件配置plugins:['@winner-fed/plugin-unocss','@winner-fed/plugin-unicons'],// 构建工具选择(可选:'webpack'(默认) | 'vite' | 'rsbuild')// vite: {}, // 开启 vite// rsbuild: {}, // 开启 rsbuild// 浏览器兼容性targets:{chrome:51,firefox:54,safari:10,edge:15},// 压缩配置jsMinifier:'terser',cssMinifier:'cssnano',// Sass 配置sassLoader:{api:'modern-compiler',sassOptions:{silenceDeprecations:['legacy-js-api']},additionalData:`@use "@/styles/scss/global.scss" as *;`},// 代理配置proxy:{'/api':{target:'http://localhost:3001',changeOrigin:true}}});

环境变量

项目支持多环境配置,在.env 文件中定义:

# 应用标题VITE_APP_TITLE=Soybean Admin# 应用描述VITE_APP_DESC=A beautiful vue admin template# 服务端接口地址VITE_SERVICE_BASE_URL=http://localhost:3001# 路由历史模式VITE_ROUTER_HISTORY_MODE=history# 是否开启请求代理VITE_HTTP_PROXY=true

网络请求

项目提供了多种请求库封装:

1. 使用 Axios(推荐)

import{request}from'@/service';// GET 请求constdata=awaitrequest.get<ApiResponse>('/api/users');// POST 请求constresult=awaitrequest.post('/api/users',{name:'John'});

2. 使用 Alova

import{alova}from'@sa/alova';// 创建请求方法constgetUserList=()=>alova.Get('/api/users');// 在组件中使用const{ data, loading}=useRequest(getUserList);

样式开发

项目支持多种样式方案:

1. UnoCSS(原子化 CSS)

<template>  <divclass="flex items-center justify-center h-screen bg-gray-100">    <h1class="text-3xl font-bold text-blue-600">Hello World</h1>  </div></template>

2. Sass/SCSS

// 使用全局变量.header {background-color:$primary-color;height:$header-height;// 使用 mixins@includeflex-center;}

3. CSS Modules

<template>  <div:class="$style.container">    <h1:class="$style.title">Title</h1>  </div></template><style module>.container {padding:20px;}.title {font-size:24px;color:#333;}</style>

📦 构建配置

多构建工具对比

特性ViteWebpackRsbuild
构建速度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
热更新⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
生态成熟度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
配置复杂度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
适用场景现代项目大型项目性能优先

浏览器兼容性

// .winrc.tstargets:{chrome:51,firefox:54,safari:10,edge:15}

构建优化策略

  • 代码分割: 自动分析依赖关系,按需加载
  • 代码压缩: Terser 压缩 JavaScript,cssnano 压缩 CSS
  • Tree Shaking: 自动移除未使用的代码
  • 模块联邦: 支持微前端架构,便于大型项目拆分
  • 缓存策略: 智能缓存,提升二次构建速度
  • Source Map: 开发环境启用,生产环境可配置

性能优化

// .winrc.ts 性能配置exportdefaultdefineConfig({// 启用模块联邦缓存mfsu:{shared:{vue:{singleton:true,eager:false}}},// 开发环境内联 CSS,生产环境提取styleLoader:process.env.NODE_ENV==='production' ?false :{},// Source Map 配置devtool:process.env.NODE_ENV==='development' ?'source-map' :false});

🔍 调试与测试

开发调试

  • 🔥热更新支持: 代码修改后自动刷新页面
  • 🗺️Source Map 调试: 精确定位源代码位置
  • 📊详细的错误信息: 清晰的错误堆栈信息
  • 🌐代理支持: 本地开发代理后端接口
  • 📱移动端调试: 支持移动端设备调试

代码质量保障

项目配置了多层代码质量保障体系:

1. 提交前检查

// .lintstagedrc{"*.{js,jsx,ts,tsx,vue}": ["eslint --fix","prettier --write"],"*.{css,scss,less}": ["stylelint --fix","prettier --write"],"*.{json,md}": ["prettier --write"]}

2. Git Hooks

  • pre-commit: 提交前自动检查和修复代码
  • commit-msg: 检查提交信息是否符合规范

3. 编辑器集成

  • ESLint、Prettier、Stylelint 实时检查
  • TypeScript 类型检查
  • Vue 语法高亮和智能提示

📚 相关文档

核心技术栈

UI 和样式

构建工具

开发工具

🤝 贡献指南

开发流程

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m 'feat: add amazing feature'
  4. 推送分支:git push origin feature/amazing-feature
  5. 提交 Pull Request

提交规范

项目使用Conventional Commits 规范:

# 功能feat: 添加新功能# 修复fix: 修复 bug# 文档docs: 更新文档# 样式style: 代码格式化# 重构refactor: 代码重构# 测试test: 添加测试# 构建build: 构建相关更改

🆘 问题反馈

如果您在使用过程中遇到问题,请通过以下方式获取帮助:

  1. 📖查阅文档: 首先查看相关技术栈的官方文档
  2. 🐛提交 Issue:GitHub Issues
  3. 💬讨论区:GitHub Discussions
  4. 📧邮件联系:lwbhtml@163.com

📄 许可证

本项目基于MIT 许可证开源。


⭐ 如果这个项目对您有帮助,请给它一个 Star!

Happy Coding! 🎉

About

WinJS 版本的 soybean-admin

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp