winjs-app
SKILL.md
WinJS App 模板开发指南
面向移动端 H5 应用(Vue 3 + Vue Router 4 + Vite),提供配置、目录约定、请求与调试、REM 适配等核心功能。
模板概览
- 技术栈:Vue 3 + Vue Router 4,hash 路由
- 构建:WinJS + Vite,Less + PostCSS,支持 REM 适配、模块联邦
- 插件:
@winner-fed/plugin-request(请求)、@winner-fed/plugin-wconsole(VConsole) - 代码质量:Biome、StyleLint、F2ELint + Husky
核心配置(.winrc)
关键配置项说明:
- history:
{ type: 'hash' }适合 H5 部署 - plugins: 已含 request、wconsole 插件,新增追加到数组
- appConfig: 多环境配置注入
window.LOCAL_CONFIG,常用键:API_HOME、API_UPLOAD、IS_OPEN_VCONSOLE - request/wconsole: 插件配置,wconsole 控制 vConsole 开关
- convertToRem: 开启 REM 适配
- lessLoader.modifyVars: 注入
@/assets/style/variable.less与@winner-fed/magicless/magicless.less - targets:
{ ios: 10, android: 6, chrome: 80 }
应用入口(src/app.js)
关键导出配置:
- request: 配置
timeout、requestInterceptors、responseInterceptors,对接services/request.js - router: 导出
scrollBehavior等路由选项 - onRouterCreated({ router }): 注册路由守卫,勿在模块顶层调用
- onAppCreated / onMounted: 应用创建和挂载后的钩子
⚠️ 修改 modifyClientRenderOpts 等 memo 钩子必须返回新对象。
详见 详细用法参考。
目录结构(src)
- layouts/index.vue: 全局布局,对应
@@/global-layout - pages/: 约定式路由,目录即路由
- assets/: fonts、img、style(variable.less、app.less、main.less)
- services/: 请求封装
request.js: 请求实例、拦截器、错误处理autoMatchBaseUrl.js: 按前缀返回 base URLconstant.js: 统一常量(TIMEOUT、PAGE_NUM、前缀等)
- constant.js: 根级常量
- global.less: 全局样式
新增接口:在 appConfig 增加键 → constant.js 增加前缀 → autoMatchBaseUrl.js 扩展映射。
常用命令
| 命令 | 说明 |
|---|---|
win dev |
开发服务器 |
win build |
生产构建 |
win preview |
预览构建 |
npm run lint / lint:fix |
Biome 检查/修复 |
npm run format |
Biome 格式化 |
win cache |
清缓存 |
快速排错
常见问题:
- 请求 base URL 错误: 检查
appConfig环境配置与autoMatchBaseUrl映射 - VConsole 不显示: 确认
IS_OPEN_VCONSOLE: true且 wconsole 插件已启用 - REM 不生效: 检查
.winrc中convertToRem配置 - useAppData/getRoute 报错: 仅在组件生命周期中调用
- 构建/HMR 异常: 检查
.winrc语法,执行win cache重试
详见 常见问题与排错。
参考文档
本技能随模板下发,可独立使用:
- App 模板速查 — 配置项、目录、request/wconsole 速查
- 详细用法参考 — 配置、钩子、路由、环境变量、CLI 等
- 常见问题与排错 — AppContext、clientRoutes、守卫等排错
- 官方文档索引 — 快速定位官方文档主题
在线资源:
Weekly Installs
2
Repository
winjs-dev/skillsFirst Seen
Feb 11, 2026
Security Audits
Installed on
cursor2
mcpjam1
claude-code1
junie1
windsurf1
zencoder1