Skill

SkillsSoftware Development › Frontend & web

Web Development

Web frontend project development rules. Use this skill when developing web frontend pages, deploying static hosting, and integrating CloudBase Web SDK.

Freerisk: low
webdevelopmentmarkdown

Tools: cloudbase

The full skill

— name: web-development description: Web frontend project development rules. Use this skill when developing web frontend pages, deploying static hosting, and integrating CloudBase Web SDK. alwaysApply: false — ## When to use this skill Use this skill for **Web frontend project development** when you need to: – Develop web frontend pages and interfaces – Deploy static websites to CloudBase static hosting – Integrate CloudBase Web SDK for database, cloud functions, and authentication – Set up modern frontend build systems (Vite, Webpack, etc.) – Handle routing and build configurations for static hosting **Do NOT use for:** – Mini-program development (use miniprogram-development skill) – Backend service development (use cloudrun-development skill) – UI design only (use ui-design skill, but may combine with this skill) — ## How to use this skill (for a coding agent) 1. **Follow project structure conventions** – Frontend source code in `src` directory – Build output in `dist` directory – Cloud functions in `cloudfunctions` directory – Use modern frontend build systems (Vite, etc.) 2. **Use CloudBase Web SDK correctly** – Always use SDK built-in authentication features – Never implement login logic in cloud functions – Use `envQuery` tool to get environment ID 3. **Deploy and preview properly** – Build project first (ensure `npm install` is executed) – Use relative paths for `publicPath` configuration – Use hash routing for better static hosting compatibility – Deploy to subdirectory if user doesn't specify root directory — # Web Frontend Development Rules ## Project Structure 1. **Directory Organization**: – Frontend source code should be stored in `src` directory – Build output should be placed in `dist` directory – Cloud functions should be in `cloudfunctions` directory 2. **Build System**: – Projects should use modern frontend build systems like Vite – Install dependencies via npm 3. **Routing**: – If the frontend project involves routing, use hash routing by default – Hash routing solves the 404 refresh issue and is more suitable for static website hosting deployment ## Deployment and Preview 1. **Static Hosting Deployment**: – For frontend projects, after building, you can use CloudBase static hosting – First start local preview, then confirm with user if deployment to CloudBase static hosting is needed – When deploying, if user has no special requirements, generally do not deploy directly to root directory – Return deployed address in markdown link format 2. **Local Preview**: – To preview static web pages locally, navigate to the specified output directory and use `npx live-server` 3. **Public Path Configuration**: – When web projects are deployed to static hosting CDN, since paths cannot be known in advance, `publicPath` and similar configurations should use relative paths instead of absolute paths – This solves resource loading issues ## CloudBase Web SDK Usage 1. **SDK Integration**: – If user's project needs database, cloud functions, and other features, need to introduce `@cloudbase/js-sdk@latest` in the web application **Important: Authentication must use SDK built-in features. It is strictly forbidden to implement login authentication logic using cloud functions!** “`js import cloudbase from "@cloudbase/js-sdk"; const app = cloudbase.init({ env: "xxxx-yyy", // Can query environment ID via envQuery tool }); const auth = app.auth(); // Check current login state let loginState = await auth.getLoginState(); if (loginState && loginState.user) { // Logged in const user = await auth.getCurrentUser(); console.log("Current user:", user); } else { // Not logged in – use SDK built-in authentication features // Collect user's phone number into variable `phoneNum` by providing a input UI // Send SMS code const verificationInfo = await auth.getVerification({ phone_number: `+86 ${phoneNum}`, }); // Collect user's phone number into variable `verificationCode` by providing a input UI // Sign in await auth.signInWithSms({ verificationInfo, verificationCode, phoneNum, }); } “` **Initialization rules (Web, @cloudbase/js-sdk):** – Always use **synchronous initialization** with the pattern above – Do **not** lazy-load the SDK with `import("@cloudbase/js-sdk")` – Do **not** wrap SDK initialization in async helpers such as `initCloudBase()` with internal `initPromise` caches – Keep a single shared `app`/`auth` instance in your frontend app; reuse it instead of re-initializing ### Web SDK API usage rules – Only use **documented** CloudBase Web SDK methods – Before calling any method on `app`, `auth`, `db`, or other SDK objects, **confirm it exists in the official CloudBase Web SDK documentation** – If a method or option is **not** mentioned in the official docs (for example some guessed method name), **do NOT invent or use it** ## Authentication Best Practices 1. **Must use SDK built-in authentication**: CloudBase Web SDK provides complete authentication features, including login by SMS, anonymous login, custom login, etc. 2. **Forbidden to implement login using cloud functions**: Do not create cloud functions to handle login logic, this is the wrong approach 3. **User data management**: After login, user information can be obtained via `auth.getCurrentUser()`, then stored to database 4. **Error handling**: All authentication operations should include complete error handling logic ## Build Process **Web project build process**: Ensure `npm install` command has been executed first, then refer to project documentation for building