读懂报错信息

Track A: 工程化 ~20 分钟

🎯 学完这课你能

报错信息是代码世界里最常见的"沟通方式"。电脑不会说"哎我觉得有点不对",它会精确地告诉你——什么东西、在哪里、出了什么问题

问题是,这些信息用英文写的,格式也不太友好。但一旦你掌握了读法,你就能:

报错 = 员工反馈表
跟 HR 收到一份投诉一样——你需要看三样东西:
1. 投诉类型(Error Type)—— 是什么类别的问题?
2. 投诉内容(Error Message)—— 具体说了什么?
3. 追溯路径(Stack Trace)—— 这个问题是怎么一路传递上来的?

报错的三层结构

看一个真实的报错:

TypeError: Cannot read properties of undefined (reading 'name') at UserProfile (src/components/UserProfile.tsx:23) at renderWithHooks (node_modules/react-dom/...) at mountIndeterminateComponent (node_modules/react-dom/...)

拆解一下:

第 1 层:错误类型 (Error Type)

TypeError — 类型错误。就像让会计去写代码,"岗位不匹配"。

第 2 层:错误描述 (Message)

Cannot read properties of undefined (reading 'name')
翻译:"我想读取某个东西的 name 属性,但那个东西根本不存在(是 undefined)。"

第 3 层:追溯路径 (Stack Trace)

at UserProfile (src/components/UserProfile.tsx:23)
翻译:"问题出在 UserProfile 组件的第 23 行。" 下面的 node_modules 行是框架内部的,通常可以忽略。

读报错的诀窍:从上往下看,第一行告诉你什么问题,Stack Trace 里找到第一个不是 node_modules 的文件——那就是你的代码出问题的地方

报错严重程度分级

不是所有报错都需要立刻修。用 HR 的思维来分级:

🔴 Error / TypeError / SyntaxError

严重事故 — 程序崩了,必须立即修复。
HR 类比:核心员工突然离职,业务停摆。

🟡 Warning

隐患提醒 — 现在能跑,但可能将来出问题。
HR 类比:某员工连续三个月绩效 C,还没到开除的程度,但得关注。

🟢 Info / Debug / Deprecation Notice

参考信息 — 不影响运行,知道就行。
HR 类比:公司内刊通知,某个流程下个季度要改。

常见报错速查词典

下面是你做项目时最常遇到的报错,每个都翻译成了人话:

Module not found: Can't resolve './xxx'

"我按照你给的地址去找人,但那个人不在那里。" → 文件路径写错了或文件不存在。

SyntaxError: Unexpected token

"你说的话我听不懂,语法不对。" → 少了括号、引号、逗号之类的标点。

TypeError: xxx is not a function

"你让我执行一个东西,但它不是一个可以执行的功能。" → 调错了方法名或者导入写错了。

ENOENT: no such file or directory

"操作系统说:你要的那个文件/文件夹,不存在。" → 路径错了。

npm WARN deprecated

"你用的某个工具太老了,官方不再维护了。" → 暂时没事,但最好找时间升级。

EADDRINUSE: port xxxx already in use

"这个工位已经有人在用了。" → 端口被占用,关掉之前的程序或换个端口。

给 CC 描述问题的正确姿势

当你遇到报错需要 CC 帮忙时,怎么描述决定了修复效率:

✗ 低效描述

"出错了,你看看怎么回事"

"跑不了了"

"报红了"

✓ 高效描述

"运行 npm run dev 后,控制台显示 TypeError: Cannot read 'name' of undefined,出在 UserProfile.tsx 第 23 行"

"之前能正常运行,加了 XX 功能之后就报这个错了"

模板:"我在执行 [什么命令] 时,在 [什么文件:第几行] 报了 [什么类型的错误]。我之前做了 [什么改动] 之后就出现了。"

📝 小测验

看到这个报错:Module not found: Can't resolve './utils/helpers',最可能的原因是?

📝 小测验 2

以下哪个报错最紧急、必须立即修?

📝 小测验 3

在 Stack Trace 中,你应该首先关注哪一行?

← 第 1 课:代码世界的地图 第 3 课:技术栈 = 团队配置 →