Imported from yansongda/application (
wechat/miniprogram/totp/AGENTS.md). Install upstream withnpx skills add yansongda/application --skill totp. Copyright stays with the author.
AGENTS.md
项目概述
该目录是「TOTP安全码」微信小程序前端,使用 TypeScript 与微信小程序原生目录结构。包管理器固定为 Bun(非 pnpm/npm/yarn/deno)。
小程序工程根目录为 wechat/miniprogram/totp/,其中真正的小程序源码位于 src/(由 project.config.json 中 miniprogramRoot: "src/" 指定)。
目录结构
wechat/miniprogram/totp/
src/ # 小程序业务代码(miniprogramRoot)
package.json # 脚本定义与依赖声明
bun.lock # Bun 锁文件(必须提交)
biome.json # 格式化与 lint 配置
tsconfig.json # TypeScript 配置
project.config.json # 微信开发者工具配置
project.private.config.json # 个人本地配置(不提交)
typings/ # 自定义类型声明
.gitignore
src/ 常见子目录:
src/pages/:页面src/components/:组件src/utils/:工具函数src/miniprogram_npm/:微信开发者工具构建的 npm 产物(不提交)
包管理与依赖
- 包管理器:Bun(不是 pnpm)
- 锁文件:
bun.lock(必须提交) - 安装依赖:
bun install - 依赖解析:Bun 通过
package.json的dependencies/devDependencies自动创建node_modules/并保持bun.lock同步
构建 / 检查命令
所有命令在 wechat/miniprogram/totp/ 目录下执行,使用 bun run:
bun install # 安装依赖(首次或依赖变更后)
bun run biome:check # 格式化与 lint 检查
bun run biome:fix # 自动修复
bun run biome:fix-unsafe # 自动修复(含不安全修复)
bun run typecheck # TypeScript 类型检查(tsc --noEmit)
代码风格规范
- 使用
biome做格式化与 lint,配置文件为wechat/miniprogram/totp/biome.json biome覆盖范围以biome.json中的files.includes为准(src/**/*),并排除src/miniprogram_npm/**/*- 默认使用空格缩进,JavaScript/TypeScript 字符串使用双引号
- 提交前优先运行
bun run biome:check,需要自动修复时运行bun run biome:fix
开发约束
- 新增页面、组件、工具函数时,优先沿用
src/下现有目录组织 - 类型声明优先放在
typings/ - 与后端 API 对接时,字段命名和含义应与后端保持一致,避免前端自行发明新语义
- 修改公共常量、接口模型或页面交互时,尽量保持微信小程序现有用法一致,避免无关重构
CI 与提交流程
- 前端 CI 检查为:
bun install && bun run biome:check && bun run typecheck - 禁止提交:
node_modules/、src/miniprogram_npm/、project.private.config.json、.idea/、.vscode/ - 必须提交:
bun.lock
联动开发说明
- 涉及后端接口联动时,同时参考
application-rs/AGENTS.md - 仅修改微信前端时,不需要遵循 Rust 后端的代码风格和构建命令
NOTES
- 与
yansongda主小程序共享utils/error.ts、utils/logger.ts、utils/string.ts、models/error.ts、types/http.d.ts等代码,但当前无正式共享包,分别独立维护。 - 当前 CI 已接入
bun run biome:check与bun run typecheck。 src/vendor/内为 otpauth 官方 dist 产物质样拷贝(实际加载源),与package.json中固定精确版本号(无 caret)必须同步升级,升级步骤见src/vendor/README.md;禁止改用包 main 入口(node:crypto 依赖)。
