必须全局配置Ignored Files and Folders并执行Invalidate Caches and Restart,否则node_modules仍被索引;.gitignore和右键Excluded均无效,因前者IDE不读取,后者不清理旧缓存且破坏类型解析。

Ignored Files and Folders 必须全局配,否则 node_modules 仍索引
只在 .gitignore 里写 node_modules/ 或右键选 Mark Directory as → Excluded,根本不管用。WebStorm 完全不读 .gitignore,而 Excluded 只改项目级配置(写进 .idea/{project}.iml),旧索引不清理,CPU 还是狂升、Ctrl+Click 照样跳进依赖里。
真正生效的路径只有一条:File > Settings > Editor > File Types > Ignored Files and Folders,在输入框末尾加:
node_modules;dist;.next;.nuxt;.env.local;public/dist
注意:
- 不加斜杠(node_modules/ 错)、不加星号(node_modules/** 无效)
- 多个条目用分号分隔,结尾加分号更安全
- .env.local 必须完整写出,.env.* 不匹配
改完设置后 Project 树没变化?缓存没清干净
WebStorm 不会自动刷新 Project 视图,也不会主动重建索引。你点了 Apply,但目录还在树里、还是黑色、右键仍有 Open in Terminal,说明旧缓存还在起作用。
必须执行:File > Invalidate Caches and Restart > Invalidate and Restart。
重启后验证是否成功:
-
node_modules在 Project 面板中呈浅灰色、不可展开 - 右键菜单里没有
Open in Terminal、Reveal in Finder -
Ctrl+Shift+N搜不到react/index.js这类文件
别跳过这步——90% 的“配置不生效”都卡在这儿。
Deployment 上传还传 node_modules?那是另一套规则
Ignored Files and Folders 只控制本地索引,和上传行为完全无关。即使 node_modules 已全局忽略,Tools > Deployment > Configuration > Options > Exclude items by name 里没填,它照传不误。
Deployment 排除规则要单独配,且语法不同:
node_modules/;dist/;.env.local;*.log
注意:
- 这里必须加斜杠(node_modules/),否则可能只排除同名文件
- 支持通配符(*.log),用分号或逗号分隔
- 这个设置不影响 Git 提交,也不影响本地索引
单个文件怎么忽略?只能靠名称匹配
WebStorm 不允许对单个文件右键选 Excluded,这是硬限制。想忽略 config.local.js 或 secrets.json,只能走全局规则:
在 Ignored Files and Folders 输入框里加:
config.local.js;secrets.json;*.local.js
注意:
- *.local.js 是唯一支持通配符的地方(仅限该字段)
- 路径写法仍是纯文件名,不带目录前缀(比如不能写 src/config.local.js)
- 如果文件在多层子目录下,得靠通配符覆盖,不能靠路径匹配
实际项目里最常漏掉的是三件事:缓存没清、Deployment 没单独配、单个敏感文件误以为能右键排除。这三处一漏,就等于白配。


















