code spell checker装完不标红,根本原因是插件未加载到当前文件上下文:右下角必须显示spell图标或en/zh-cn等语言标识,否则即使已安装、配置正确也无效;需确认插件“已启用”、语言模式为typescript react等支持格式、无"cspell.enabled": false禁用项,且中文检查需同时配置cspell.language为["en","zh-cn"]、cspell.allowcompoundwords为true并安装官方cspell-dict-chinese扩展。

Code Spell Checker 插件装完不标红,基本不是插件问题,而是它压根没加载到当前文件上下文——右下角没出现 Spell 图标或语言代码(如 en、zh-CN),其他所有配置都白搭。
右下角没 Spell 图标?先确认插件真启用了
插件“已安装”不等于“已启用”,更不等于“正在工作”。VSCode 不会报错,只会静默跳过。
- 打开任意
.ts或.md文件,盯住右下角状态栏:必须看到Spell图标或类似en/zh-CN的语言标识 - 进扩展面板搜
Code Spell Checker,右下角显示的是「已启用」,不是「已安装」 - 按
Cmd+Shift+P(Mac)或Ctrl+Shift+P(Win/Linux),输入Spell Checker: Toggle回车,强制重载一次 - 检查
settings.json里有没有误加"cSpell.enabled": false——这个配置一存在,其他所有设置全失效
字符串和注释不标红?语言模式和语法高亮没对上
Code Spell Checker 不自己解析代码,它依赖 VSCode 的语法高亮(TextMate grammar)来识别哪些是字符串、哪些是注释。语法解析失败,就找不到检查目标。
- 点击右下角语言标识(如
Plain Text),用Change Language Mode改成TypeScript React(不是TypeScript)或JavaScript React;JSX 中的{"hello"}和模板字符串只在这些模式下被识别 -
.vue文件必须装Volar(不是Vetur),否则<template></template>里的内容不会被提取出来 - 检查
files.associations设置,别把*.ts错误映射成plaintext——这种配置会让插件直接跳过整个文件 - 临时验证法:在文件顶部加一行
// spell-checker: disable,保存后再删掉。如果这时突然开始标红,说明之前被某处静默禁用了
中文注释整段标红?三个配置缺一不可
中文不是拼写错误,是插件把整段中文当成了未识别英文单词去查词典。想让它合理分词,得同时满足:
-
cSpell.language必须设为数组:["en", "zh-CN"](zh或zh-cn都不行) -
cSpell.allowCompoundWords必须为true,否则userName会被拆成user和name,两个都报错 - 必须安装官方
cspell-dict-chinese扩展(作者streetsidesoftware),第三方“Chinese Spell Checker”不兼容
CI/CD 里怎么跑拼写检查?别指望插件
VSCode 插件在 CI 环境里完全不可用。你得用 CLI 工具 cspell,它和插件共享同一套配置,但独立运行。
- 本地验证命令:
npx cspell --no-progress "**/*.{js,ts,md,txt}" - 确保项目根目录有
.cspell.json,CI 脚本才能复用相同规则 - 注意:插件里配的
cSpell.enabledLanguageIds或右下角语言模式对 CLI 完全无效,CLI 只认文件后缀和配置文件中的languageId字段
最常被忽略的其实是语言模式绑定——哪怕所有配置都写对了,只要当前文件被识别为 Plain Text,插件连第一行都不会扫描。











