前端测试
- 作者仓库星标 23
- 作者更新于 实时读取
- 作者仓库 skills
- 领域
- 通用
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 88 / 100 · 社区维护
- 作者 / 版本 / 许可
- @vbenjs · 未声明 license
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- Docker
- 底层运行要求
- Docker
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- 读取环境变量
- 网络行为
- 仅限本地
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: vben
description: Vben Admin 5.0 前端框架开发技能。用于开发基于 Vue3、Vite、TypeScript 的中后台管理系统。 基于 Vben Admin 5.0 文档的专业开发指导技能,帮助快速…
category: 通用
runtime: Docker
---
# vben 输出预览
## PART A: 任务判断
- 适用问题:通用任务拆解、检查和交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“项目结构 / 常用命令 / 核心开发指南”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于通用任务拆解、检查和交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“项目结构 / 常用命令 / 核心开发指南”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、读取环境变量、主要在本地完成、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、读取环境变量;主要在本地完成;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 先确认触发方式
原文没有稳定的斜杠命令要求。安装验证后通常全局生效,直接在对话里点名这个 Skill 并描述任务即可。
给清楚输入和边界
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、读取环境变量。
小样例验证后再放大
先用一个小任务确认它会围绕“项目结构 / 常用命令 / 核心开发指南”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
复核后再交付
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: vben
description: Vben Admin 5.0 前端框架开发技能。用于开发基于 Vue3、Vite、TypeScript 的中后台管理系统。 基于 Vben Admin 5.0 文档的专业开发指导技能,帮助快速…
category: 通用
source: vbenjs/skills
---
# vben
## 什么时候使用
- Vben Admin 5.0 前端框架开发技能 适合处理通用任务拆解、检查、交付和复盘,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;通常不需要额外 AP…
- 面向通用任务拆解、检查和交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「项目结构 / 常用命令 / 核心开发指南」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、读取环境变量;主要在本地完成;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 证据边界与执行链路
作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "vben" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> 项目结构 / 常用命令 / 核心开发指南
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Docker | 读取文件、写入/修改文件、读取环境变量 | 主要在本地完成
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} Vben Admin 开发技能
基于 Vben Admin 5.0 文档的专业开发指导技能,帮助快速开发中后台管理系统。
项目结构
采用 Monorepo 架构,核心目录:
├── apps/ # 应用目录
│ ├── web-antd/ # Ant Design Vue 应用
│ ├── web-ele/ # Element Plus 应用
│ ├── web-naive/ # Naive UI 应用
│ └── backend-mock/ # Mock 后端服务
├── packages/ # 共享包
│ ├── @core/ # 核心包(UI组件、布局等)
│ ├── effects/ # 副作用包(权限、请求、hooks等)
│ ├── stores/ # 状态管理
│ ├── locales/ # 国际化
│ └── utils/ # 工具函数
└── internal/ # 内部工具配置
常用命令
# 开发
pnpm dev:antd # 启动 Ant Design 应用
pnpm dev:ele # 启动 Element Plus 应用
pnpm dev:naive # 启动 Naive UI 应用
# 构建
pnpm build # 构建所有应用
pnpm build:antd # 构建指定应用
# 其他
pnpm lint # 代码检查
pnpm check:type # 类型检查
pnpm reinstall # 重新安装依赖
核心开发指南
路由与菜单
路由配置位于 src/router/routes/modules/ 目录:
import type { RouteRecordRaw } from 'vue-router';
const routes: RouteRecordRaw[] = [
{
meta: {
icon: 'mdi:home',
title: $t('page.home.title'),
authority: ['admin'], // 权限控制
order: 1000, // 菜单排序
keepAlive: true, // 开启缓存
hideInMenu: false, // 菜单中隐藏
hideInTab: false, // 标签页中隐藏
},
name: 'Home',
path: '/home',
component: () => import('#/views/home/index.vue'),
},
];
export default routes;
权限控制
三种模式在 preferences.ts 中配置:
import { defineOverridesPreferences } from '@vben/preferences';
export const overridesPreferences = defineOverridesPreferences({
app: {
accessMode: 'frontend', // 'frontend' | 'backend' | 'mixed'
},
});
按钮级权限:
<script setup>
import { AccessControl, useAccess } from '@vben/access';
const { hasAccessByCodes, hasAccessByRoles } = useAccess();
</script>
<template>
<!-- 权限码方式 -->
<AccessControl :codes="['AC_100100']" type="code">
<Button>有权限可见</Button>
</AccessControl>
<!-- 角色方式 -->
<Button v-if="hasAccessByRoles(['admin'])">管理员可见</Button>
<!-- 指令方式 -->
<Button v-access:code="'AC_100100'">有权限可见</Button>
</template>
偏好设置配置
在应用目录的 preferences.ts 中配置:
import { defineOverridesPreferences } from '@vben/preferences';
export const overridesPreferences = defineOverridesPreferences({
app: {
layout: 'sidebar-nav', // 布局方式
locale: 'zh-CN', // 语言
dynamicTitle: true, // 动态标题
watermark: false, // 水印
loginExpiredMode: 'page', // 登录过期模式
},
theme: {
mode: 'dark', // 主题模式
builtinType: 'default', // 内置主题
colorPrimary: 'hsl(212 100% 45%)', // 主题色
},
sidebar: {
collapsed: false, // 侧边栏折叠
width: 224, // 侧边栏宽度
},
tabbar: {
enable: true, // 标签页
keepAlive: true, // 缓存
},
});
API 请求
请求配置在 src/api/request.ts:
import { requestClient } from '#/api/request';
// GET 请求
export async function getUserInfoApi() {
return requestClient.get<UserInfo>('/user/info');
}
// POST 请求
export async function saveUserApi(user: UserInfo) {
return requestClient.post<UserInfo>('/user', user);
}
代理配置在 vite.config.mts:
export default defineConfig(async () => {
return {
vite: {
server: {
proxy: {
'/api': {
target: 'http://localhost:5320/api',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
},
};
});
国际化
使用 $t() 函数:
import { $t } from '#/locales';
meta: {
title: $t('page.home.title'),
}
语言文件在 packages/locales/ 目录。
主题定制
CSS 变量覆盖:
:root {
--primary: 212 100% 45%;
--sidebar: 0 0% 100%;
--header: 0 0% 100%;
}
.dark {
--background: 222.34deg 10.43% 12.27%;
--sidebar: 222.34deg 10.43% 12.27%;
}
登录接口对接
需要的接口:
// src/api/core/auth.ts
export async function loginApi(data: LoginParams) {
return requestClient.post<LoginResult>('/auth/login', data);
}
// src/api/core/user.ts
export async function getUserInfoApi() {
return requestClient.get<UserInfo>('/user/info');
}
// src/api/core/auth.ts (可选)
export async function getAccessCodesApi() {
return requestClient.get<string[]>('/auth/codes');
}
环境变量
# .env.development
VITE_PORT=5555
VITE_GLOB_API_URL=/api
VITE_NITRO_MOCK=true
# .env.production
VITE_GLOB_API_URL=https://api.example.com
VITE_COMPRESS=gzip
VITE_ROUTER_HISTORY=hash
别名配置
使用 # 开头的路径别名:
// package.json
{
"imports": {
"#/*": "./src/*"
}
}
// 使用
import { useAuthStore } from '#/store';
详细参考文档
需要更多细节时,查阅以下参考文件:
核心功能 (references/core/)
- 路由菜单:
references/core/route.md- 路由配置、Meta属性、多级菜单 - 权限控制:
references/core/access.md- 三种权限模式、按钮级权限 - 偏好设置:
references/core/preferences.md- 完整配置项说明 - 主题定制:
references/core/theme.md- CSS变量、内置主题、自定义主题 - API请求:
references/core/api.md- 请求配置、拦截器、多接口地址 - 国际化:
references/core/locale.md- 语言配置、新增语言包 - 登录对接:
references/core/login.md- 登录接口、Token刷新 - 图标使用:
references/core/icons.md- Iconify图标、SVG图标
业务组件 (references/components/business/)
- Page页面:
references/components/business/page.md- 页面布局容器、标题区、内容区 - 表单组件:
references/components/business/form.md- Vben Form表单配置、校验、联动 - 表格组件:
references/components/business/table.md- Vben Vxe Table表格配置、搜索、远程加载 - 模态框:
references/components/business/modal.md- Vben Modal配置、拖拽、全屏 - 抽屉:
references/components/business/drawer.md- Vben Drawer配置、组件抽离 - 轻量提示框:
references/components/business/alert.md- alert、confirm、prompt调用 - API组件包装器:
references/components/business/api-component.md- 远程数据自动加载
通用组件 (references/components/common/)
- 数字动画:
references/components/common/count-to.md- CountToAnimator数字滚动动画 - 省略文本:
references/components/common/ellipsis-text.md- EllipsisText文本省略展开
功能配置 (references/features/)
- 常用功能:
references/features/features.md- 水印、缓存、动态标题等
构建部署 (references/deployment/)
- 构建部署:
references/deployment/deploy.md- 构建配置、Nginx、Docker - 常见问题:
references/deployment/faq.md- 依赖安装、打包部署、错误排查
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核