离线可用前提:语言服务本地化、规则配置内置、解析器与检查器已安装;ESLint等工具需提前装对包、配好文件、关闭云端依赖。

VSCode 插件自动检查错误,离线能用的前提是:语言服务不依赖远程 API、规则配置全在本地、解析器和检查器二进制都已安装到项目或系统中。纯离线环境(无网络、无远程服务器)下,ESLint、Stylelint、ShellCheck、Code Spell Checker 都可正常工作,但必须提前完成三件事:装对包、配好文件、关掉云端依赖。
ESLint 报错不显示?先确认它在用本地 node_modules
VSCode 默认可能调用全局 ESLint,而你项目里装的是本地版本——离线时全局没装或版本不对,就彻底静默。
- 打开 VSCode 设置(
Ctrl+,),搜eslint.packageManager,设为npm或pnpm(和你项目一致) - 确保项目根目录有
package.json,且已运行过npm install(离线前就得装好eslint和@typescript-eslint/parser等依赖) - 右下角点 ESLint 图标,如果显示
Using globally installed ESLint,说明没走本地,需重启窗口或手动触发Developer: Reload Window - 别用
eslint.config.js(新格式),VSCode 插件对它的支持仍不稳定;优先用.eslintrc.js并导出对象:module.exports = { rules: { ... } }
Stylelint 不检查 .module.css 或 styled-components?配置必须显式声明
默认规则只认 .css、.scss,遇到 .module.css、.pcss 或 JSX 里的样式,不加配置就直接跳过——离线时不会报错,只会“假装没看见”。
- 在
.stylelintrc.js里加overrides块,例如:{ "overrides": [{ "files": ["**/*.module.css"], "customSyntax": "postcss-less" }] } - CSS-in-JS(如
styled-components)必须额外装stylelint-processor-styled-components,并在配置中写"processor": "stylelint-processor-styled-components" - 确认 VSCode 右下角语言模式是
CSS或SCSS,不是plaintext;误设会导致整个文件不进检查链 - 离线前务必运行
npm install --save-dev stylelint postcss,否则提示Cannot find module 'postcss'就真没法修了
Code Spell Checker 中文注释不标红?language 和 allowCompoundWords 必须同时开
只配 "cSpell.language": ["en", "zh"] 不够,中文分词逻辑依赖额外开关,否则“用户名”“登录页”全被拆成单字报错。
- 在
settings.json中必须同时设置:"cSpell.allowCompoundWords": true -
"zh"和"zh-cn"效果不同:后者对简体中文复合词识别更准,但需配合allowCompoundWords - 变量名、函数名默认不检查——这是设计,不是 bug;想查就得开
cSpell.checkProgrammaticTypes: true,但强烈不建议,会把zustand、vitepress这类词全标红 - 离线时别依赖“添加到用户词典”,那会污染所有项目;优先在项目根目录建
.cspell.json,写进"words": ["React", "UUID"]
ShellCheck 提示消失或全是误报?shebang 和 shell 类型必须匹配
ShellCheck 默认按 bash 解析,但你的脚本可能是 #!/bin/sh 或 #!/usr/bin/env zsh——类型不匹配,连语法树都建错,自然满屏警告。
- 第一行 shebang 必须明确,比如
#!/bin/bash;没写或写#!/bin/env sh这种模糊形式,VSCode 插件就只能猜 - 可在设置中强制指定:
shellcheck.shell设为bash/sh/zsh - 离线前确认
shellcheck二进制已装:macOS 用brew install shellcheck,Ubuntu 用sudo apt install shellcheck,Windows 用choco install shellcheck - 插件默认从 PATH 查,若你用
nvm或asdf管环境,PATH 可能不一致;这时必须在设置里填完整路径:shellcheck.executablePath: "/usr/local/bin/shellcheck"
离线配置最易忽略的点:所有依赖(parser、processor、二进制、词典)必须在断网前装完、配好、验证过。VSCode 不会告诉你“缺 postcss”,它只会安静地不报错——你以为规则失效,其实是解析器根本没加载成功。


















