Code Spell Checker 默认不检查变量名和函数名,因其属代码逻辑部分,拼错可能为有意缩写;需手动启用严格模式并配置cSpell.diagnosticLevel、cSpell.enabledLanguageIds等参数,配合.cspell.json或cSpell.userWords添加API及驼峰词白名单,CI中须用cspell CLI并确保配置落于项目内文件。

Code Spell Checker 为什么默认不检查变量名和函数名
它默认只检查注释、字符串、普通文本,因为变量名和函数名属于代码逻辑的一部分——拼错可能意味着故意为之(比如缩写 usr 代替 user),插件不敢擅自标记为错误。
要让它检查代码中的标识符,得手动开启严格模式:
- 打开 VSCode 设置(
Cmd+,或Ctrl+,),搜索spellright.language—— 不用管这个,那是另一个插件 - 搜
cSpell.allowCompoundWords,设为false(否则userName会被拆成两个词放过) - 关键一步:启用
cSpell.diagnosticLevel并设为"Hint"或"Information",再配合cSpell.enabledLanguageIds加入"javascript"、"typescript"等你实际用的语言 ID - 如果仍不标红变量名,检查是否开了
cSpell.ignorePaths误把当前文件夹排除了
拼错 console.log 写成 conosle.log 为啥不报错
因为 conosle 是一个合法的未定义变量名,JS 解析器不报错,插件也不会主动把它当“拼写错误”——它没在词典里,但也不违反拼写规则(比如没用非法字符、不是全大写乱码)。
解决办法是让插件“认识”你常用的 API:
- 在工作区根目录加
.cspell.json,往words字段里手动加"console"、"document"、"addEventListener"这类高频 API - 或者用
cSpell.userWords设置(推荐),在 VSCode 设置里搜这个,点「编辑在 settings.json」,填入:"cSpell.userWords": ["console", "document", "fetch", "localStorage"]
- 注意大小写:加
"Console"不等于"console",小写优先
中文项目里夹英文命名,插件老把 userInfo 当错误标红
这是词典策略问题。userInfo 被拆成 user 和 info 没问题,但插件默认禁用连字符和驼峰词自动分词(cSpell.allowCompoundWords 默认 true,反而会让 userinfo 这种连写被放过,而 userInfo 因为有大写被当成单个词查词典——结果查不到就标红)。
更稳的做法是关掉自动分词,改用白名单:
- 设
cSpell.allowCompoundWords为false - 在
cSpell.userWords里加常用驼峰词:"userInfo"、"orderId"、"httpStatus" - 别加
"user"和"info"单独存在,否则userinfo(无大写)也会被放过,失去检查意义 - 如果团队多人协作,把这个
cSpell.userWords提交到仓库的.vscode/settings.json,避免每人重配
CI 流程里怎么验证命名拼写不引入新错误
Code Spell Checker 本身没 CLI,但可以靠 cspell 命令行工具(同一作者维护)做自动化检查。
先全局装它:
npm install -g cspell
然后在项目根目录跑检查:
- 生成当前所有拼写问题:
cspell "**/*.{js,ts,jsx,tsx}" --no-progress - 想只检查新增代码?配合
git diff提取改动行再喂给cspell(需要脚本封装) - CI 中建议加
--quiet和--no-summary,只输出错误行,方便解析退出码 - 注意:CLI 默认不读 VSCode 的
settings.json,必须把词典配置写进项目级.cspell.json,否则本地 OK、CI 报错
最常漏的一点:插件 UI 里点“添加到用户词典”只改你电脑上的全局配置,CI 完全看不到。所有共享规则必须落在项目目录下的 .cspell.json 或 .vscode/settings.json 里。


















