smart-debugger
8
总安装量
7
周安装量
#35009
全站排名
安装命令
npx skills add https://github.com/sakumyz/skills --skill smart-debugger
Agent 安装分布
opencode
7
github-copilot
7
codex
7
kimi-cli
7
gemini-cli
7
amp
7
Skill 文档
æºè½è°è¯å©æ
ä»é误信æ¯å¿«éå®ä½é®é¢æ ¹å ï¼ç»åºä¿®å¤å»ºè®®ã
è¾å ¥æ¹å¼
æ¥å以ä¸ä»»ä¸å½¢å¼ï¼
- éè¯¯ä¿¡æ¯ææ¬ï¼å¦
TypeError: Cannot read properties of undefinedï¼ - æ§å¶å°æ¥å¿ç段
- å¼å¸¸è¡ä¸ºæè¿°ï¼å¦”ç»ä»¶å夿¸²æï¼é¡µé¢å¡é¡¿”ï¼
- æå®æä»¶è·¯å¾ + é®é¢æè¿°
è°è¯æµç¨
1. é误åç±»
æ ¹æ®è¾å ¥ä¿¡æ¯å½ç±»ï¼
| ç±»å« | ä¿¡å· | ä¼å ææ¥ |
|---|---|---|
| è¿è¡æ¶ç±»åé误 | TypeError, ReferenceError | åéæªå®ä¹ã屿§è®¿é®é¾ãç±»åæè¨ |
| 渲æå¼å¸¸ | ç½å±ãç»ä»¶ä¸æ¾ç¤ºãéªç | æ¡ä»¶æ¸²æé»è¾ãæ°æ®åå§ç¶æãSuspense/ErrorBoundary |
| æ§è½é®é¢ | å¡é¡¿ãé¢ç¹é渲æ | useEffect ä¾èµãç¶ææ´æ°å¾ªç¯ã大å表æªèæå |
| ç½ç»è¯·æ± | 4xx/5xxãCORSãè¶ æ¶ | API å°åã请æ±å¤´ã代çé ç½® |
| æ ·å¼å¼å¸¸ | å¸å±éä¹±ãæ ·å¼ä¸çæ | CSS ä¼å 级ã卿 classã主é¢è¦ç |
| æå»ºé误 | ç¼è¯å¤±è´¥ãç±»åé误 | å¯¼å ¥è·¯å¾ãç±»åå®ä¹ãtsconfig |
| æ§å¶å°è¦å | React/Vue è¦å | Key éå¤ãPropTypesãååºå¼ä¸¢å¤± |
2. ä¸ä¸ææ¶é
æ ¹æ®åç±»ï¼èªå¨æ§è¡å¯¹åºçä¸ä¸ææ¶éï¼
éç¨æ¥éª¤ï¼ææç±»å«é½æ§è¡ï¼ï¼
- 读å
package.jsonè¯å«ææ¯æ åæ¡æ¶çæ¬ - 妿æä¾äºæä»¶è·¯å¾ï¼è¯»åç¸å ³æä»¶
æç±»å«é¢å¤æ¶éï¼
| ç±»å« | èªå¨æ¶é |
|---|---|
| è¿è¡æ¶é误 | ä»å æ ä¿¡æ¯å®ä½æºæä»¶ â 读åæä»¶ â æ£æ¥ä¸ä¸æ |
| 渲æå¼å¸¸ | æ£æ¥ç»ä»¶ props/state å®ä¹ â æ°æ®æµè¿½è¸ª |
| æ§è½é®é¢ | æç´¢ useEffect/watch ä½¿ç¨ â æ£æ¥ä¾èµæ°ç» |
| ç½ç»è¯·æ± | æ£æ¥ API é ç½®ã代çé ç½®ãç¯å¢åé |
| æå»ºé误 | æ£æ¥ tsconfig.jsonãwebpack/vite é ç½® |
3. 模å¼å¹é
å°é误信æ¯ä¸å¸¸è§å端é误模å¼è¿è¡å¹é ï¼å¿«éç»åºæ¹åã
é«é¢éè¯¯éæ¥
TypeError: Cannot read properties of undefined (reading ‘xxx’)
- ææ¥ï¼å¯éé¾ç¼ºå¤±
obj?.propãAPI è¿åç»æååã弿¥æ°æ®åå§ç¶æä¸º undefined - ä¿®å¤ï¼æ·»å 空å¼ä¿æ¤ã设置é»è®¤å¼ãæ£æ¥æ°æ®æµ
TypeError: xxx is not a function
- ææ¥ï¼å¯¼å ¥é误ï¼default vs named exportï¼ãçæ¬å级 API åæ´ã弿¥å è½½æªå®æ
- ä¿®å¤ï¼æ£æ¥ import è¯å¥ãæ¥é åºç changelog
Maximum update depth exceeded / Too many re-renders
- ææ¥ï¼useEffect ä¾èµæ°ç»ç¼ºå¤±/é误ãsetState å¨ render ä¸è°ç¨ã对象/æ°ç»å¼ç¨ä¸ç¨³å®
- ä¿®å¤ï¼ä¿®æ£ä¾èµæ°ç»ãä½¿ç¨ useMemo/useCallback 稳å®å¼ç¨
Cannot update a component while rendering another
- ææ¥ï¼å¨æ¸²æé¶æ®µè°ç¨äº setStateï¼æ¥èªåç»ä»¶çåè°ãcontext æ´æ°ï¼
- ä¿®å¤ï¼å°æ´æ°ç§»è³ useEffect æäºä»¶å¤ç彿°ä¸
Objects are not valid as a React child
- ææ¥ï¼æ¸²æäºåå§å¯¹è±¡
{obj}ãæ¥æå¯¹è±¡æªè½¬å符串ãPromise æªè§£æ - ä¿®å¤ï¼JSON.stringify ææåå ·ä½å段
Vue: [Warn] Invalid prop type / Missing required prop
- ææ¥ï¼PropTypes å®ä¹ä¸ä¼ å ¥ä¸å¹é ãç»ä»¶ API åæ´
- ä¿®å¤ï¼æ£æ¥ç»ä»¶ææ¡£ãä¿®æ£ prop ä¼ å ¥
Vue: [Warn] Avoid using non-primitive value as key
- ææ¥ï¼v-for ç key 使ç¨äºå¯¹è±¡èéåå§å¼
- ä¿®å¤ï¼ä½¿ç¨å¯ä¸ ID åæ®µä½ä¸º key
4. è¾åºæ ¼å¼
## ð è¯æç»æ
**é误类å**ï¼[åç±»]
**æ ¹å **ï¼[ä¸å¥è¯è¯´æ]
### é®é¢å®ä½
- æä»¶ï¼`path/to/file.tsx`
- è¡å·ï¼çº¦ L42ï¼åºäºå æ / 代ç åæï¼
- 代ç çæ®µï¼
```tsx
// é®é¢ä»£ç
ä¿®å¤å»ºè®®
// ä¿®å¤åç代ç
é¢é²æªæ½
- [å¦ä½é¿å åç±»é®é¢]
## ä¸ BugHunter çåå·¥
| åºæ¯ | 使ç¨å·¥å
· |
|------|---------|
| æ¿å°ä¸ä¸ªé误信æ¯ï¼æ³å¿«éå®ä½ä¿®å¤ | **smart-debugger**ï¼æ¬ skillï¼ |
| æ¶å° Redmine Bug å·¥åï¼éè¦å®æ´ä¿®å¤éç¯ | **BugHunter**ï¼subagentï¼ |
| é¾ä»¥å®ä½ç夿 Bugï¼éè¦æ·±åº¦åæ | å
ç¨ smart-debugger åè¯ â 转 BugHunter |