Code Spell Checker 插件无反应,需检查启用状态、文件语言模式及cSpell.language配置;默认仅检查注释/字符串/Markdown,不查变量名;依赖语法高亮识别scope;项目级用cspell.json管理词典和忽略路径;CI/CD应使用cspell CLI而非插件。

Code Spell Checker 插件装完没反应?检查启用状态和语言配置
插件安装后不标红拼写错误,大概率是没激活或语言没匹配上。Code Spell Checker 默认只对注释、字符串、Markdown 文本生效,不会检查变量名或关键字——这是设计使然,不是 bug。
实操建议:
- 确认插件已启用:在 VSCode 扩展面板搜
Code Spell Checker,看右下角是否显示「已启用」 - 检查当前文件语言模式:右下角状态栏点击语言标识(如
JavaScript),确保不是Plain Text或未识别类型;某些自定义后缀(如.vue或.astro)需手动设置语言为Vue/Astro - 打开设置搜索
cSpell.language,确认值包含当前项目常用语言,例如:"en, zh";中文拼写检查需额外启用cSpell.allowCompoundWords否则“用户名”“登录页”会被误标
为什么字符串里的英文没被检查?确认 scope 和语法高亮是否正常
拼写检查依赖 VSCode 的语法高亮(TextMate grammar)来识别字符串、注释等 scope。如果语法解析失败,Code Spell Checker 就找不到可检查的文本范围。
常见错误现象:
-
console.log("helo world")完全不报错 - JSX 中的
{"hello"}被跳过,但双引号字符串正常 - Vue 模板里
<p>wroong</p>无提示
原因和对策:
- 检查当前文件是否被正确识别:按
Ctrl+Shift+P→ 输入Change Language Mode→ 确认是JavaScript React而非JavaScript(后者不支持 JSX 字符串) - Vue 文件需安装
Volar(非 Vetur),否则<template>内容无法被语法解析器提取 - 临时验证:在文件顶部加一行
// spell-checker: disable,再删掉——如果这时突然开始标红,说明之前被全局禁用了
误报太多?用字典和忽略规则精准控制检查边界
默认词典太宽泛,尤其在技术项目里,“useState”、“zustand”、“jsx” 都会被标红。靠右键“添加到用户词典”效率低,还容易污染全局配置。
推荐做法:
- 项目级词典优先:在项目根目录建
cspell.json,用cSpell.words加白名单,例如:{"words": ["zustand", "vitepress", "tsconfig"]} - 忽略路径更安全:用
cSpell.ignorePaths排除node_modules/**、dist/**、**/*.min.js,避免扫描压缩代码引发卡顿 - 慎用
cSpell.enabled全局开关:它会关闭所有检查,包括你真正需要的 README.md;改用cSpell.languageId按语言精细控制,比如禁用jsonc但保留markdown
CI/CD 里想自动检查拼写?别依赖 VSCode 插件
Code Spell Checker 是 VSCode 前端插件,没有命令行入口,也不能直接集成进 GitHub Actions 或 husky。
替代方案很明确:
- 用开源 CLI 工具
cspell(同团队出品):运行npx cspell "**/*.{js,ts,md}"即可复现编辑器逻辑 - 注意配置同步:CLI 默认读取
cspell.json,但不会自动加载 VSCode 用户设置里的cSpell.*项,必须显式声明 - 性能敏感场景:加
--no-progress --quiet参数,避免 CI 日志刷屏;大仓库建议限定路径,如src/**/*.{ts,md}
最常被忽略的一点:VSCode 插件的「快速修复」(Alt+Enter 添加单词)不会同步到 cspell.json,每次手动加都要去 CLI 配置里补一遍,否则本地过了 CI 还是会挂。



















