code spell checker 默认不检查变量名,需配置 cspell.checkprograms: true、cspell.enabledlanguageids 和 cspell.ignorepaths 才能校验 js/ts/python 中的声明式标识符(如 const usernmae),但属性访问、类型别名等仍不支持。

Code Spell Checker 默认只检查注释和字符串,变量名、函数名、JSON key 等代码标识符不会被校验——这不是失效,是默认行为。
为什么注释和字符串标红了,但 userNmae 还是没反应?
因为插件默认跳过所有语法 token(包括 let、const、function 声明的标识符)。想让它查变量名,必须显式开启解析能力:
-
cSpell.checkPrograms必须设为true(注意:是布尔值true,不是字符串"true",否则静默失效) -
cSpell.enabledLanguageIds要包含对应语言 ID,例如["javascript", "typescript", "python"] -
cSpell.ignorePaths强烈建议加上["**/node_modules/**", "**/dist/**"],否则第三方库里的useStae类误报会刷屏
中文注释总被标红?关键在 cSpell.language 和 cSpell.allowCompoundWords
只写 "zh" 或 "zh-cn" 不够,还必须配对启用复合词识别:
-
cSpell.language推荐设为["en", "zh-cn"](zh-cn比zh对简体术语覆盖更准) -
cSpell.allowCompoundWords必须设为true,否则userName会被拆成user+Name分别查词典,全标红 - 不建议用
cSpell.wordsOnlyCheckInCommentsAndStrings: true来“保安全”——这会直接关掉变量名检查,跟目标冲突
怎么让 API、JWT、zustand 这类词不报错?
右键「Add to User Dictionary」是全局污染,应该优先走项目级白名单:
- 在项目根目录建
.cspell.json(不是cspell.json,插件 v2.4+ 优先读带点前缀的) - 填入
"words": ["API", "JWT", "zustand", "vitepress"] - 如果某文件夹全是生成代码(如
src/generated/),直接加进"ignorePaths",比挨个加词高效
CI/CD 里拼写检查失败怎么办?
VSCode 插件在无 GUI 的 CI 环境里完全不运行,必须换 CLI:
- 本地验证命令:
npx cspell --no-progress "**/*.{js,ts,md}" - CI 配置里别调
code --install-extension,直接用npx cspell扫描源码 -
.cspell.json文件会被 CLI 自动识别,无需额外传参
最常被忽略的是:插件配置和 CLI 行为不完全一致——比如 cSpell.checkPrograms 是插件专属,CLI 默认就解析标识符;而 cSpell.ignorePaths 在 CLI 中路径匹配逻辑更严格,通配符要多测几遍。











