Skip to main content

cocos-standalone-test

Use when testing Cocos Creator code as a standalone HTML without the IDE.

Source facts

Repository
ChrisLamDev/cocos-creator-debug-skills
Last source activity
July 4, 2026 at 01:36
Detected SKILL.md language
Chinese
Stars
1
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
cocos-standalone-test
description
Use when testing Cocos Creator code as a standalone HTML without the IDE.
# 🪷 Cocos Creator Standalone HTML 快速測試 ## 背景 佛心項目嘅遊戲用 Cocos Creator 3.x 開發,需要 Cocos Creator IDE 先可以 compile TypeScript。但好多時候我哋唔方便開 IDE,或者想快速驗證邏輯先再做正式 build。 呢個 workflow 提供一個快速測試方法。 ## 步驟 ### 1. 確認需求 師兄想測試某個遊戲功能。如果只係邏輯層面(劇情引擎、選擇系統、功德系統等),可以用 standalone HTML 做快速驗證。 ### 2. 建立測試 HTML 喺 `BuddhaHeart_Game/build/web-mobile/` 建立 `test-story.html`(或 `test-xxx.html`),做以下轉換: **TypeScript → JavaScript 轉換規則:** | TypeScript(Cocos) | JavaScript(Standalone) | |---------------------|------------------------| | `import { ... } from 'cc'` | 移除,改用純 JS | | `@_decorator.ccclass('X')` | 移除,用 class / object | | `@_decorator.property(...)` | 移除,直接初始化 | | `Component, Node, Label, Button, tween` | 用 DOM API + CSS 動畫代替 | | `this.node.emit(...)` | 用自訂 EventTarget / callback | | TypeScript type annotation | 移除 | ### 3. 核心 UI 元素對應 | Cocos 元素 | HTML 對應 | |-----------|-----------| | Scene node | `<div id="app">` | | Label | `<div>` or `<p>` with CSS font styling | | Button | `<button>` with CSS | | Sprite / color | CSS `background`, `color` | | tween | CSS `transition` + `animation` | | Button.EventType.CLICK | `element.addEventListener('click', ...)` | ### 4. 啟動測試 ```bash cd BuddhaHeart_Game/build/web-mobile && python3 -m http.server 8080 ``` 然後用 browser 打開 `http://localhost:8080/test-story.html` ### 5. 測試方法 - 用 browser tool 操作 UI(click 按鈕、睇文字變化) - 用 browser_snapshot 睇 DOM 狀態(睇到文字、按鈕等內容) - 用 browser_vision 截圖確認視覺效果(可 Send 俾師兄睇) - 檢查邏輯是否正確(功德值計算、劇情分支、結局條件) - 行晒所有可能路線,確保每個分支同結局都正常 ### 6. 完成後 - Kill server:`process(action='kill', session_id='...')` - 知會師兄測試結果 - 如果測試 pass,將邏輯保留返喺正式 `.ts` 檔案中 - 測試用嘅 `test-story.html` 可以保留或刪除 ## No Compile, No Commit — TypeScript 強制編譯規則 Cocos Creator 項目改 code 後,commit 前必須做 TypeScript compile check: 1. 確保 `node_modules/typescript` 已安裝:`npm install typescript` 2. 確保 `types/cc.d.ts` 存在(mock Cocos 3.x 類型宣告,因 cocos-creator-3d 不在 npm registry) 3. 確保 `tsconfig.phase6.json` 存在(獨立 config,用 typeRoots 指向 types/,只 include 新 code 排除舊 code) 4. Run: `npx tsc --noEmit -p tsconfig.phase6.json` 5. **零 error 先可以 commit**。自行修復所有報錯。 常見 TS error 同修復: | Error | 原因 | 修復 | |-------|------|------| | `cc.Vec3` not found | 用咗舊 Cocos 2.x `cc.xxx` 語法 | 改用 ES6 import + `Vec3` | | `'scale' not in Partial<Node>` | Tween type 唔夠闊 | 在 cc.d.ts 加 `TweenProps` interface | | `property X not exist` | spread 咗唔喺 interface 嘅 field | `as any` cast | | `?? unreachable` | `?.` operator 順序問題 | 改用明確變量 + if-else | ## 注意事項 - Standalone HTML 用純 JS,**唔可以**直接用 Cocos API(`cc` namespace) - 動畫效果會比 Cocos 版本簡陋,呢個係正常嘅 - 只適合測試邏輯,UI 精緻度要用 Cocos IDE 先做到 - 如果師兄想見到正式畫面,需要 Cocos Creator 打開 project build ## 輸出長度限制處理(關鍵技巧) 大嘅 standalone 測試頁(SocialUI + 控制邏輯,>30KB)好容易超出模型 output 上限。**解決方法:分步寫入法** ### 步驟 A:先寫 HTML 骨架 + CSS(write_file) 一次性寫 HTML head、body 結構、style block、DOM element 骨架。呢 part 約 8-15KB。 ### 步驟 B:分開 patch JS adapter 部分 JS block(inline adapter、managers、控制邏輯)佔最大篇幅。用多個 `patch` 命令分段加入: 1. **第一次 patch**:SocialUI inline renderer(UI 生成函數 + CSS getter) 2. **第二次 patch**:SocialIntegration bridge(createSocialIntegration, helper functions, event binding) 3. **第三次 patch**:初始化代碼 + 快速操作按鈕 + 測試頁尾部 咁樣每個 patch 約 8-12KB,遠低於 output 上限,唔會爆長度。 ### 通用規則 - 任何超過 15KB 嘅檔案,考慮分拆為「骨架 + N次 patch」 - TypeScript adapter(繞過 Cocos decorator 嘅 JS class)係最大舊嘅,要放最後 patch - 多個 managers 各自 patch 會更穩定
View on GitHub