WebStorm代码检查严格程度由TypeScript编译器、ESLint/Stylelint及内置Inspection三类配置叠加决定:需确认tsconfig.json在项目根目录、TypeScript路径指向node_modules/typescript/lib/tsc.js并启用编译器;ESLint/Stylelint路径须填对包目录而非.bin,配置文件手动指定且重启生效;Severity降级前须确保高亮样式未被主题覆盖,第三方库应通过Exclude from inspection彻底排除。

WebStorm 里代码检查的“严格程度”不是单一开关,而是由三类配置叠加决定的:语言级编译器(如 TypeScript)、项目级 Linter(如 ESLint/Stylelint)、以及编辑器内置 Inspection 的严重性级别。改错一个地方,其他两处可能还在悄悄放水。
TypeScript strict 模式不生效?先看这三个硬开关
TypeScript 的 strict: true 在 WebStorm 里常被当成摆设,根本原因是它压根没被真正加载。
- 确认
tsconfig.json在项目根目录,不在src/或子文件夹下——WebStorm 只认顶层配置 - 进
Settings → Languages & Frameworks → TypeScript,TypeScript version必须手动选中node_modules/typescript/lib/tsc.js,不能选Bundled或留空 -
Enable TypeScript compiler必须勾选;不勾,编辑器只做语法高亮,不做类型校验
状态栏右下角没出现 TypeScript 小部件?说明服务根本没起来。点开它,如果提示 No TypeScript compiler found,就回去重查 tsc 路径。
ESLint / Stylelint 报错不显示?90% 是路径或作用域配错了
WebStorm 不会自动扫描你装了什么 Linter,它只执行你明确指定的 package 和文件范围。
- ESLint:路径必须是
node_modules/eslint(不是.bin/eslint),配置文件必须手动指定为eslint.config.js(v9+ 不再识别.eslintrc.js) - Stylelint:路径填
node_modules/stylelint,Run for files里加**/*.scss;**/*.less(分号分隔,不是逗号) - Vue 或 TS 文件没检查?得额外装插件(如
eslint-plugin-vue),并在eslint.config.js中声明plugins: ['vue'],同时确保*.vue在Settings → File Types里被识别为 Vue.js 类型
改完设置后,必须重启 WebStorm——重载配置不生效。
把 Error 降成 Warning?别只调 Severity,先看高亮是否被关了
很多人调了 Undefined variable 的 Severity 为 Warning,但波浪线还是红色。这不是 Severity 失效,是高亮样式被覆盖了。
- 进
Settings → Editor → Inspections,选中某项(如Unused local variable),右侧看Highlighting in editor下拉菜单 - 默认可能是
Underline,但如果当前主题里这个样式的颜色被设成白色或透明,就等于没画线 - 点旁边的
Edit Highlighting,确认Effect color不是灰色/白色;也可临时换为Wave underline测试 - 顺手检查
Settings → Editor → Color Scheme → General → Errors and Warnings,这里有个全局开关,误点就会关掉所有波浪线
真正影响“是否报错”的是启用状态(复选框),Severity 只决定颜色和提示层级;而高亮样式才是最终“画不画线”的执行者。
第三方库(vendor/node_modules)怎么彻底不检查?
别去一个个关 Inspection,也别用 // @ts-ignore 或 /* eslint-disable */,那是对整个目录无效的。
- 在项目视图右键
vendor或node_modules→Inspect Code…→ 齿轮图标 → 勾选Exclude from inspection - 或进
Settings → Editor → Inspections,右上角Only for files matching点 +,加规则:vendor/**或node_modules/**,并勾选Exclude - 验证方式:打开
vendor/autoload.php,故意写错语法,确认没有波浪线、悬停也没提示
Suppress for file 只对单文件有效;关掉几十个 PHP Inspection 项,下次更新依赖又会满屏报错——排除作用域才是干净解法。


















