消息结构
第一行错误
First error line
TypeError: Cannot read properties of undefined含义
第一行清晰的错误信息通常是最好的起点。
阅读方式
暂时忽略重复的后续日志,并找到第一个命名失败的行。
示例
TypeError: Cannot read properties of undefined请求示例
找到此日志中的第一行实际错误。
编程
学习从错误日志找出真正原因、文件位置、警告与失败差异,并提出准确的调试请求。
31 个项目
消息结构
First error line
TypeError: Cannot read properties of undefined第一行清晰的错误信息通常是最好的起点。
暂时忽略重复的后续日志,并找到第一个命名失败的行。
TypeError: Cannot read properties of undefined找到此日志中的第一行实际错误。
消息结构
Error name
SyntaxError, TypeError, ReferenceError错误名称会告诉你问题的广泛类别。
使用它来区分语法、运行时、类型、网络和环境问题。
SyntaxError, TypeError, ReferenceError在建议修复之前,根据错误名称对该错误进行分类。
消息结构
Error message
Module not found: Can't resolve '@/lib/error-message-guide'该消息解释了该工具无法执行的操作。
读取动词和对象:无法解析模块,无法读取属性,或无法绑定端口。
Module not found: Can't resolve '@/lib/error-message-guide'将此错误消息用清晰的韩语重写,并指出可能的原因。
消息结构
Stack trace
at SiteHeader (src/components/SiteHeader.tsx:42:15)一个导致错误的函数调用列表。
找到指向您的项目文件的第一行,然后检查该区域。
顶部的堆栈行并不总是你的代码。 一些行是框架的内部实现。
at SiteHeader (src/components/SiteHeader.tsx:42:15)在此堆栈跟踪中,找到第一行来自我的项目。
位置线索
File path
src/components/LanguageSwitcher.tsx路径会告诉你工具认为哪个文件是相关的。
优先选择 `src`、`app`、`components` 或 `lib` 下的路径,然后再检查依赖项文件夹。
src/components/LanguageSwitcher.tsx列出此错误提及的项目文件。
位置线索
Line and column
src/app/page.tsx:27:12行和列将位置缩小到特定的字符区域。
检查指定的行以及它上面的几行,因为真正的原因可能在更早的地方开始。
src/app/page.tsx:27:12打开包含报告行的文件,并解释出现的问题。
位置线索
Project file line
src/lib/git-github.ts:143:7指向您的源代码而不是依赖项的堆栈或构建行。
这通常是应该在查看较长的框架跟踪信息之前检查的行。
src/lib/git-github.ts:143:7将我的项目文件行与框架文件行分开。
位置线索
node_modules line
node_modules/next/dist/server/app-render.js一个安装的依赖项或框架包中的一条线。
如果日志中没有指向包版本或配置问题,则将其视为上下文。
不要直接修改 node_modules 目录,这通常不是正确的修复方法。
node_modules/next/dist/server/app-render.js请告诉我,这行 node_modules 是否是导致问题的原因,还是仅仅是上下文信息。
JavaScript 运行错误
SyntaxError
SyntaxError: Unexpected token '}'JavaScript 或 TypeScript 无法解析代码。
检查括号、引号、逗号、JSX 标签以及报告行附近的未完成表达式。
SyntaxError: Unexpected token '}'找到此行附近的语法问题。
JavaScript 运行错误
TypeError
TypeError: Cannot read properties of undefined值在运行时没有代码期望的形状或行为。
检查该值是否可以是未定义、null、字符串而不是对象,或者缺少函数。
TypeError: Cannot read properties of undefined跟踪此未定义值来自哪里。
JavaScript 运行错误
ReferenceError
ReferenceError: copy is not defined代码尝试使用在当前作用域中不可用的变量或函数名称。
检查导入、拼写、作用域,以及变量是否在使用之前声明。
ReferenceError: copy is not defined找到为什么这个名称没有被定义。
JavaScript 运行错误
Cannot read properties of undefined
无法读取未定义的属性 (reading 'navLabel')代码尝试访问未定义值的属性。
检查点 (.) 之前的对象,例如 copy、locale、params 或地图查找结果。
无法读取未定义的属性 (reading 'navLabel')确定此错误中哪个值未定义。
JavaScript 运行错误
is not a function
setOpenMenu 不是一个函数。代码尝试使用括号调用某个内容,但该值不是函数。
检查属性、导入、钩子结果或对象方法是否具有预期的名称。
setOpenMenu 不是一个函数。找到为什么这个值被当作一个函数来调用。
Next.js 与 Web
Module not found
Module not found: Can't resolve '@/lib/error-message-guide'打包器无法找到在导入中命名的文件或包。
检查文件是否存在,路径拼写是否正确,以及别名是否指向预期的文件夹。
Module not found: Can't resolve '@/lib/error-message-guide'检查导入路径和实际文件路径。
Next.js 与 Web
Export not found
Export errorMessageGuideCopy doesn't exist in target module导入名称与目标文件中的任何导出项都不匹配。
比较导入的名称与精确导出的 const、函数或类型名称。
Export errorMessageGuideCopy doesn't exist in target module找到不匹配的导入或导出名称。
Next.js 与 Web
Hydration failed
Hydration failed because the server rendered HTML didn't match the client服务器生成的 HTML 与 React 在浏览器中渲染的内容不匹配。
检查在初始渲染期间使用的浏览器专用值、日期、随机值、localStorage 和主题状态。
Hydration failed because the server rendered HTML didn't match the client找到服务器和客户端渲染可能不一致的情况。
Next.js 与 Web
404 Not Found
GET /ko/reference/error-message-guide 404无法找到请求的路由或文件。
检查路由文件夹、generateStaticParams、link href 以及导出的静态输出路径。
GET /ko/reference/error-message-guide 404检查为什么此路由返回 404 错误。
Next.js 与 Web
500 Internal Server Error
GET /ko 500服务器接收到请求,但在处理过程中失败。
查看来自相同请求的终端日志,而不仅仅是浏览器的状态码。
GET /ko 500将此浏览器的 500 错误与导致它的终端错误进行匹配。
TypeScript 与 lint
Property does not exist on type
属性 'navLabel' 不存在于类型 'string' 中。TypeScript 提示:值的声明类型不包含该属性。
检查该值是否具有正确的类型,是否已正确索引,以及数据形状是否已更改。
属性 'navLabel' 不存在于类型 'string' 中。解释为什么 TypeScript 认为这个属性不存在。
TypeScript 与 lint
Type is not assignable
类型 'string' 不能赋值给类型 'Locale'值正在传递到期望不同类型的某个地方。
比较实际值类型与名为 'to type' 的预期类型。
类型 'string' 不能赋值给类型 'Locale'显示此错误中的实际类型和预期类型。
TypeScript 与 lint
ESLint error
React Hook `useEffect` 缺少依赖项静态分析规则发现的代码可能不安全、不一致或违反项目风格。
读取规则名称和文件行,然后确定是应该更改代码还是依赖项列表。
React Hook `useEffect` 缺少依赖项解释此 lint 错误并修复它,而不会改变行为。
Next.js 与 Web
Build failed
编译失败。构建过程无法完成。
滚动到摘要上方,找到第一个编译、类型、lint 或路由错误。
编译失败。从此构建日志中,识别第一个阻止性错误。
终端与系统
EADDRINUSE
Error: listen EADDRINUSE: address already in use :::3001服务器尝试使用另一个进程已经使用的端口。
停止旧服务器,或在新服务器上使用不同的端口运行。
Error: listen EADDRINUSE: address already in use :::3001找到正在使用此端口的内容,并建议最安全的下一步操作。
终端与系统
ENOENT
ENOENT:没有找到该文件或目录,无法打开 'next.config.js'。该进程尝试打开一个在指定路径下不存在的文件或文件夹。
检查当前工作目录、文件名拼写、扩展名以及生成的文件的名称。
ENOENT:没有找到该文件或目录,无法打开 'next.config.js'。检查文件是否缺失,或者命令是否从错误的目录运行。
终端与系统
Permission denied
权限不足该进程没有读取、写入或执行目标的权限。
检查沙箱规则、文件权限、受保护的文件夹以及是否需要批准。
不要通过广泛更改权限来修复权限错误,除非您了解目标。
权限不足解释为什么会发生这个权限错误,以及需要哪些授权。
终端与系统
Command not found
zsh: command not found: nextshell 无法找到具有该名称的可执行命令。
检查是否已安装依赖项,是否应使用 npm 脚本,以及 PATH 是否已设置。
zsh: command not found: next告诉我是否应该运行 npm 脚本而不是此命令。
调试顺序
Warning
DeprecationWarning: module.register() is deprecated一个警告表示某些内容可能需要注意,但它可能不会停止当前命令。
检查命令是否仍然成功完成,然后再将警告视为错误。
DeprecationWarning: module.register() is deprecated将此输出中的阻塞错误与非阻塞警告分开。
调试顺序
DeprecationWarning
DeprecationWarning: module.register() is deprecated该功能目前仍然有效,但计划稍后进行替换或删除。
如果构建成功,将其记录为后续操作,除非它指向您的代码或需要升级。
DeprecationWarning: module.register() is deprecated请告诉我,这个 DeprecationWarning 是否会阻止部署。
调试顺序
Recent change
错误是在编辑 SiteHeader.tsx 后开始的。最新的相关编辑通常是最有价值的线索。
比较错误位置与当前任务中修改的文件。
错误是在编辑 SiteHeader.tsx 后开始的。比较此错误与最近修改的文件。
调试顺序
Reproduce step
打开 /ko,点击语言菜单,然后点击站点菜单导致错误再次出现的最小动作序列。
清除重现步骤,以便可以验证修复是否真正有效。
打开 /ko,点击语言菜单,然后点击站点菜单将此描述转换为精确的重现步骤。
调试顺序
Minimal log
错误行 + 文件路径 + 源文件堆栈信息一组简短的日志行,保留实际的错误和位置信息。
保持第一个错误、项目文件路径、命令以及最终的成功或失败摘要。
错误行 + 文件路径 + 源文件堆栈信息将此长日志压缩为调试所需的最小行数。