Skip to content

踩坑记录

每一条踩坑记录都是用时间买的经验。记录的目的不是证明「我踩过」,而是下次遇到同类问题时十分钟内脱坑,并把经验固化成可复用的写法。

记录方法:五段式

按「现象 → 排查过程 → 根因 → 解决方案 → 预防」五段记录,标题写清问题关键词,方便日后搜索。直接复制:

markdown
---
title: 踩坑:标题写问题关键词(技术栈 + 报错/现象)
description: 一句话现象
tags:
  - 踩坑记录
  - <技术栈标签,如 前端 / 构建>
---

# 踩坑:xxx

## 现象

- 复现步骤(版本、环境、触发操作)
- 实际表现(报错原文 / 截图描述 / 异常行为)

## 排查过程

- 试过什么,排除了什么(写「排除项」能避免别人重复踩)
- 定位到关键线索的瞬间

## 根因

- 一句话本质原因(概念理解错 / API 用错 / 环境差异 / 工具默认行为)
- 为什么会产生这个现象,把因果讲通

## 解决方案

- 最小改动 / 正确写法(贴关键代码)
- 验证结果(跑通、报错消失)

## 预防

- 怎么写以后不会再踩(检查清单项 / lint 规则 / 文档备注)
- 关联的正式笔记链接

怎么记录才有效

阶段要求反例
现象含版本环境与报错原文,可复现「报错了」
排查过程排除过的假设,缩短别人排查路径直接跳结论
根因讲清因果,不是贴解决方案的「因为所以」「就是这样,改了就对了」
解决方案最小可复制代码 + 验证结果只给思路不给代码
预防落到可执行的动作(检查项 / 规则 / 写法)「下次注意」

站内分类索引

各领域正式文档中已内置「踩坑 / 常见误区」小节,这里统一收口:日常排错先到对应模块查找,找不到的坑再按五段式新增到本页。

分类站内直达覆盖的典型坑
前端React 踩坑 · Angular 踩坑 · 样式方案 · 微前端 · 前端安全Hooks 依赖、signal.mutate() 移除、CSS 变量层叠、沙箱隔离、密钥泄漏
构建与测试构建工具 · 测试 · 性能优化 · 浏览器原理Vite HMR 边界、快照滥用、长任务、事件循环时序
后端Node.js / NestJS · Spring Boot · Go · 数据库 · 缓存 · 消息队列背压、@Transactional 自调用、context 取消、索引失效、缓存击穿、幂等键
语言JavaScript · Rust · 语言对比闭包、所有权、null 处理差异
AIPrompt · RAG 与 Agent · 模型微调 · AI 工程化提示注入、评测集污染、显存估算、量化格式
过程习惯本站「写作规范」与 项目复盘见下方「高频坑位 TOP」

本站实例(真实收录)

写作与构建本站时踩过的坑,均已在对应文档修复并沉淀为规范:

现象根因解决关联页
Angular 页面整页白屏,控制台 Cannot read properties of undefined (reading 'name')VitePress 将 Markdown 编译为 Vue 模板,正文展示 Vue 插值语法(双花括号包表达式)时被当作插值求值<code v-pre> 包裹跳过后缀编译,全文件扫描确认无裸露插值Angular
vitepress build 在 client/server bundles 阶段报 Element is missing end tag 终止正文裸写 <head> 被 Vue 编译器当作真实 HTML 标签解析改反引号包裹,全文件扫描确认无其他裸露标签浏览器原理
构建期报告 dead link 失败相对链接 ./vue/ecosystem/vitest/ 解析到不存在的 vitest/index(该子主题无首页)改为指向实际入口页 getting-started测试
Rust 示例编译报错? 传播错误后函数返回类型不匹配,漏包 Ok补齐 Ok 包裹后通过编译,示例均基于 rustc 实跑验证Rust

以上各条在原始记录中均含「现象 → 根因 → 解决」完整过程;正式收录后浓缩为表格便于速查。

高频坑位 TOP

来自本站多篇文章反复出现的行为层高频坑(与具体技术无关,先自查再查代码):

  • [ ] 教程跟着敲的时间远大于自己写的时间,项目永远「会跑不会造」;
  • [ ] 框架/语言浅尝辄止频繁横跳,一套没学透就换下一个;
  • [ ] 跳过部署与真实联调,作品只存在于本地;
  • [ ] 示例代码没在真实运行时验证就收录进文档(版本、输出、报错都要实测);
  • [ ] 笔记直接复制文档原文,不留自己的话(学完即忘的根源);
  • [ ] 写 Markdown 不检查裸标签 / 裸插值 / 相对链接,导致整站构建失败。

从日志到踩坑记录

日常在学习日志里记下「疑问与卡点」,满足任一条件就升级为独立踩坑条目:

信号动作
排错耗时超过半天必须写,五段式能保住排错路径
同一坑第二次出现立即写,先查本页再动手
坑可被某条规范 / lint / 写法根治写完预防后,把预防动作补进对应领域文档

写作规范速记

  • 命名 pitfall-<技术栈>-<问题关键词>.md 或直接在分类小节新增小节;
  • 标题必须含可搜索的问题关键词(报错名 / API / 框架名);
  • 五段式缺一不可,其中「排查过程」与「预防」最容易偷懒,也最值钱;
  • 涉及具体技术细节时链接到对应领域的正式笔记,避免本页重复堆代码。

写作规范请参阅过程记录

基于 VitePress 构建 · 内容以知识共享方式沉淀