Files
soul-yongping/.cursor/skills/kbone-miniprogram/README.md

268 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kbone 小程序开发技能
## 概述
这个技能帮助 AI Agent 更好地处理使用 Kbone 框架将 React Web 应用转换为微信小程序的任务。
**适用场景**
- 配置 Kbone 项目
- 优化 Kbone 构建
- 解决跨平台兼容性问题
- 排查 Kbone 相关错误
---
## 文件说明
### SKILL.md
主要技能文档,包含:
- Kbone 核心配置规范
- 常见问题快速解决方案
- 跨平台适配层设计
- 开发流程和最佳实践
- 快速检查清单
### troubleshooting.md
详细的故障排查指南,包含:
- 编译问题chunk 文件、Babel、依赖
- 运行时问题URLSearchParams、localStorage、window/document
- 样式问题Grid、盒模型、Flexbox
- 路由问题导航、switchTab、动态路由
- 网络问题API 请求、跨域)
- 性能问题(加载慢、卡顿)
- 调试技巧和工具
---
## 技能使用指南
### 何时使用此技能
Agent 应该在以下情况下自动应用此技能:
1. **项目配置**
- 用户提到 "kbone"、"小程序"、"miniprogram"
- 需要配置 `miniprogram.config.js`
- 需要配置 `webpack.mp.config.js`
2. **代码转换**
- 将 React Web 应用转换为小程序
- 需要创建跨平台适配层
- 处理 Web 和小程序的 API 差异
3. **问题排查**
- 编译错误chunk 文件、Webpack 配置)
- 运行时错误API 不兼容)
- 样式问题Grid、布局错乱
- 路由问题(导航失败)
4. **优化任务**
- 优化 Kbone 配置
- 减小包体积
- 提升性能
---
## 核心知识点
### 1. 配置规范
**router 配置**:每个页面单独配置
```javascript
router: {
index: ['/', '/index.html'],
my: ['/my', '/my.html'],
}
```
**pages 配置**:每个页面设置标题
```javascript
pages: {
index: {
extra: { navigationBarTitleText: '首页' }
}
}
```
---
### 2. 兼容性处理
**必须避免的 API**
- `URLSearchParams`(自定义实现)
- `localStorage`(使用适配器)
- `window``document`(条件使用)
**必须避免的 CSS**
- CSS Grid改用 Flexbox
- 未设置 `box-sizing: border-box`
---
### 3. 代码分割策略
**中小型项目**<20 页面
```javascript
splitChunks: false // 禁用,优先稳定性
```
**大型项目**>50 页面):
```javascript
splitChunks: { chunks: 'all' } // 启用,优化体积
```
---
### 4. 环境判断
```javascript
function isMiniProgram() {
return typeof wx !== 'undefined' && wx.getSystemInfoSync
}
```
---
## 快速参考
### 常见问题速查
| 问题 | 文档位置 |
|------|---------|
| chunk 文件缺失 | SKILL.md > 问题 2 |
| URLSearchParams 错误 | SKILL.md > 问题 3 / troubleshooting.md > 运行时问题 1 |
| CSS Grid 不生效 | SKILL.md > 问题 1 / troubleshooting.md > 样式问题 1 |
| 底部导航动态显示 | SKILL.md > 问题 4 |
| 页面跳转失败 | troubleshooting.md > 路由问题 1 |
| API 请求失败 | troubleshooting.md > 网络问题 1 |
---
### 配置文件速查
| 配置 | 文件 | 关键点 |
|------|------|--------|
| 路由配置 | miniprogram.config.js | router 每个页面单独配置 |
| 页面标题 | miniprogram.config.js | pages 配置 navigationBarTitleText |
| 代码分割 | webpack.mp.config.js | optimization.splitChunks |
| 环境判断 | webpack.mp.config.js | mode 和 isOptimize |
| 入口文件 | webpack.mp.config.js | entry 每个页面一个入口 |
---
## 使用示例
### 场景 1配置新项目
用户消息:
> "帮我配置一个 kbone 项目,有首页、目录、阅读三个页面"
Agent 应该:
1. 读取 SKILL.md
2. 创建 `miniprogram.config.js`,配置 router 和 pages
3. 创建 `webpack.mp.config.js`,配置 entry 和 optimization
4. 创建跨平台适配器router、request、storage、env
5. 提供构建和测试命令
---
### 场景 2修复编译错误
用户消息:
> "编译报错ENOENT: no such file or directory, open '.../default~chapters~index.js'"
Agent 应该:
1. 识别为 chunk 文件缺失问题
2. 读取 SKILL.md > 问题 2 或 troubleshooting.md > 编译问题 1
3. 判断项目规模
4. 禁用或配置 splitChunks
5. 重新构建并验证
---
### 场景 3修复运行时错误
用户消息:
> "小程序报错URLSearchParams is not defined"
Agent 应该:
1. 识别为 API 兼容性问题
2. 读取 SKILL.md > 问题 3 或 troubleshooting.md > 运行时问题 1
3. 创建 `buildQueryString` 函数
4. 替换所有 `URLSearchParams` 使用
5. 测试验证
---
### 场景 4优化配置
用户消息:
> "根据 kbone 官方文档优化我的配置"
Agent 应该:
1. 读取 SKILL.md > 核心配置规范
2. 检查 router、pages、global 配置
3. 检查 webpack mode 和 isOptimize
4. 优化不规范的配置
5. 提供优化说明和测试指引
---
## 维护说明
### 更新触发条件
当以下情况发生时,应更新此技能:
1. **Kbone 官方更新**
- 新版本配置变化
- 新增功能或 API
- 废弃旧配置
2. **发现新问题**
- 遇到新的兼容性问题
- 发现新的最佳实践
- 用户反馈的常见问题
3. **项目实践积累**
- 新的解决方案
- 更好的配置策略
- 优化的代码模式
---
### 更新流程
1. 在 troubleshooting.md 添加新问题和解决方案
2. 如果是常见问题,在 SKILL.md 添加快速方案
3. 更新本 README.md 的快速参考表
4. 在项目 `开发文档/8、部署/` 下创建详细文档
---
## 参考资源
### 官方文档
- [Kbone 官方文档](https://wechat-miniprogram.github.io/kbone/docs/)
- [React 项目模板](https://github.com/wechat-miniprogram/kbone-template-react)
- [小程序官方文档](https://developers.weixin.qq.com/miniprogram/dev/framework/)
### 项目文档
项目 `开发文档/8、部署/` 目录下有详细的实践文档:
- Kbone配置优化说明.md
- 小程序样式修复说明.md
- 自定义导航组件方案.md
- API接入说明.md
- Webpack代码分割问题修复.md
---
## 反馈与改进
如果在使用过程中发现:
- 文档不清楚的地方
- 缺少的问题和解决方案
- 更好的实践方法
请更新相应的文档文件,保持技能的时效性和准确性。