This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Development
pnpm dev:h5 # Start dev server for H5 (browser)
pnpm dev:mp-weixin # Start dev server for WeChat Mini Program
pnpm dev:app # Start dev server for native app
# Build
pnpm build:h5:production # Build H5 for production
pnpm build:h5:custom # Build H5 to dist/smqjhh5
pnpm build:mp-weixin # Build for WeChat Mini Program
# Code quality
pnpm type-check # Run TypeScript type checking (vue-tsc --noEmit)
pnpm lint # Run ESLint
pnpm lint:fix # Run ESLint with auto-fix
# API generation (auto-generates src/api/apiDefinitions.ts and src/api/globals.d.ts from OpenAPI spec)
pnpm alova-gen # Run alova gen -f
# Git
pnpm commit # Run commitizen (git-cz) for conventional commits
This is a uni-app 3.0 cross-platform project (Vue 3.4 + TypeScript) targeting WeChat Mini Program, H5, and native app. The project is "city-gather" (智慧社区/城市生活综合服务平台) — a multi-module city services platform.
@dcloudio/vite-plugin-uni for cross-platform buildsunocss.config.ts)src/composables, src/store, src/utils, src/api, src/subPack-xsb/store-xsbsrc/api/)@alova/adapter-uniapp_t timestampalova-gen from the backend OpenAPI spec — never edit manuallyApis proxy object, auto-imported so Apis.xxx.yyy() works in any filesrc/router/)uni-mini-router generates routes from pages.json via virtual:pages-jsonislogin from pages.json metadataislogin: true are in the white-list; all other pages require authentication (redirects to smqjh-login)q param)src/store/)uni.getStorageSync/uni.setStorageSyncuser (auth, profiles, addresses, unified payment/order actions), system (device info, navigation state), theme (follow-system dark/light mode), cartsrc/store/ are auto-imported via unplugin-auto-import, so useUserStore(), useSysStore() etc. are available globally without importssrc/pages/): index (home), classfiy, cart, my, loginsubPack-xsb (supermarket), subPack-smqjh (citizen marketplace), subPack-film, subPack-charge (EV charging), subPack-attractions, subPack-refueling, subPack-djk (health), subPack-videoRights, subPack-common (shared pages like address, after-sales, user-center, payment results)vite.config.ts under pagesJson.subPackageDirsUses uni-app preprocessor directives extensively:
// #ifdef H5 — H5 only
// #ifdef MP-WEIXIN — WeChat Mini Program only
// #ifndef MP-WEIXIN — Not WeChat Mini Program
@uni-helper/vite-plugin-uni-layouts provides file-based layoutsaddGlobalClass, virtualHost, styleIsolation: sharedwot-design-uni) for components (auto-resolved via WotResolver)src/components/ are auto-registered via @uni-helper/vite-plugin-uni-componentssrc/config/)BASE_URL based on:
import.meta.env.MODE (development → local/test server, production → production API)uni.getAccountInfoSync().miniProgram.envVersion (develop/trial/release)StaticUrl)lint-staged runs ESLint --fix on all filespnpm release-patch, pnpm release-minor, pnpm release-major (standard-version)