AI Engineering Tools

编程

错误消息阅读指南

学习从错误日志找出真正原因、文件位置、警告与失败差异,并提出准确的调试请求。

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 line

node_modules/next/dist/server/app-render.js

含义

一个安装的依赖项或框架包中的一条线。

阅读方式

如果日志中没有指向包版本或配置问题,则将其视为上下文。

注意

不要直接修改 node_modules 目录,这通常不是正确的修复方法。

示例

node_modules/next/dist/server/app-render.js

请求示例

请告诉我,这行 node_modules 是否是导致问题的原因,还是仅仅是上下文信息。

JavaScript 运行错误

SyntaxError

SyntaxError

SyntaxError: Unexpected token '}'

含义

JavaScript 或 TypeScript 无法解析代码。

阅读方式

检查括号、引号、逗号、JSX 标签以及报告行附近的未完成表达式。

示例

SyntaxError: Unexpected token '}'

请求示例

找到此行附近的语法问题。

JavaScript 运行错误

TypeError

TypeError

TypeError: Cannot read properties of undefined

含义

值在运行时没有代码期望的形状或行为。

阅读方式

检查该值是否可以是未定义、null、字符串而不是对象,或者缺少函数。

示例

TypeError: Cannot read properties of undefined

请求示例

跟踪此未定义值来自哪里。

JavaScript 运行错误

ReferenceError

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

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

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

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

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 错误

ESLint error

React Hook `useEffect` 缺少依赖项

含义

静态分析规则发现的代码可能不安全、不一致或违反项目风格。

阅读方式

读取规则名称和文件行,然后确定是应该更改代码还是依赖项列表。

示例

React Hook `useEffect` 缺少依赖项

请求示例

解释此 lint 错误并修复它,而不会改变行为。

Next.js 与 Web

构建失败

Build failed

编译失败。

含义

构建过程无法完成。

阅读方式

滚动到摘要上方,找到第一个编译、类型、lint 或路由错误。

示例

编译失败。

请求示例

从此构建日志中,识别第一个阻止性错误。

终端与系统

EADDRINUSE

EADDRINUSE

Error: listen EADDRINUSE: address already in use :::3001

含义

服务器尝试使用另一个进程已经使用的端口。

阅读方式

停止旧服务器,或在新服务器上使用不同的端口运行。

示例

Error: listen EADDRINUSE: address already in use :::3001

请求示例

找到正在使用此端口的内容,并建议最安全的下一步操作。

终端与系统

ENOENT

ENOENT

ENOENT:没有找到该文件或目录,无法打开 'next.config.js'。

含义

该进程尝试打开一个在指定路径下不存在的文件或文件夹。

阅读方式

检查当前工作目录、文件名拼写、扩展名以及生成的文件的名称。

示例

ENOENT:没有找到该文件或目录,无法打开 'next.config.js'。

请求示例

检查文件是否缺失,或者命令是否从错误的目录运行。

终端与系统

权限被拒绝

Permission denied

权限不足

含义

该进程没有读取、写入或执行目标的权限。

阅读方式

检查沙箱规则、文件权限、受保护的文件夹以及是否需要批准。

注意

不要通过广泛更改权限来修复权限错误,除非您了解目标。

示例

权限不足

请求示例

解释为什么会发生这个权限错误,以及需要哪些授权。

终端与系统

未找到命令

Command not found

zsh: command not found: next

含义

shell 无法找到具有该名称的可执行命令。

阅读方式

检查是否已安装依赖项,是否应使用 npm 脚本,以及 PATH 是否已设置。

示例

zsh: command not found: next

请求示例

告诉我是否应该运行 npm 脚本而不是此命令。

调试顺序

警告

Warning

DeprecationWarning: module.register() is deprecated

含义

一个警告表示某些内容可能需要注意,但它可能不会停止当前命令。

阅读方式

检查命令是否仍然成功完成,然后再将警告视为错误。

示例

DeprecationWarning: module.register() is deprecated

请求示例

将此输出中的阻塞错误与非阻塞警告分开。

调试顺序

DeprecationWarning

DeprecationWarning

DeprecationWarning: module.register() is deprecated

含义

该功能目前仍然有效,但计划稍后进行替换或删除。

阅读方式

如果构建成功,将其记录为后续操作,除非它指向您的代码或需要升级。

示例

DeprecationWarning: module.register() is deprecated

请求示例

请告诉我,这个 DeprecationWarning 是否会阻止部署。

调试顺序

最近的更改

Recent change

错误是在编辑 SiteHeader.tsx 后开始的。

含义

最新的相关编辑通常是最有价值的线索。

阅读方式

比较错误位置与当前任务中修改的文件。

示例

错误是在编辑 SiteHeader.tsx 后开始的。

请求示例

比较此错误与最近修改的文件。

调试顺序

重复步骤

Reproduce step

打开 /ko,点击语言菜单,然后点击站点菜单

含义

导致错误再次出现的最小动作序列。

阅读方式

清除重现步骤,以便可以验证修复是否真正有效。

示例

打开 /ko,点击语言菜单,然后点击站点菜单

请求示例

将此描述转换为精确的重现步骤。

调试顺序

最小日志

Minimal log

错误行 + 文件路径 + 源文件堆栈信息

含义

一组简短的日志行,保留实际的错误和位置信息。

阅读方式

保持第一个错误、项目文件路径、命令以及最终的成功或失败摘要。

示例

错误行 + 文件路径 + 源文件堆栈信息

请求示例

将此长日志压缩为调试所需的最小行数。