deployment上传node_modules是因排除规则配错位置;需在tools > deployment > configuration > options的exclude items by name中填入node_modules/(带斜杠),而非.gitignore或ignored files and folders。

Deployment 上传时 node_modules 还在传?不是没忽略,是配错了地方
WebStorm / PhpStorm 的「忽略」分三套系统:索引、Git 提交、Deployment 上传。只在 .gitignore 里写 node_modules/,或只在 Ignored Files and Folders 里加 node_modules,对上传行为完全无效。
Deployment 是独立通道,它不读 IDE 索引设置,也不看 Git 配置。哪怕 node_modules 已灰成背景板、Ctrl+Click 跳不进去、搜索也搜不到——只要没在 Deployment 的排除规则里明确写上,它照传不误。
- 打开
Tools > Deployment > Configuration - 切到
Options标签页 - 在
Exclude items by name输入框中填入:node_modules/, dist/, .env.local, *.log(逗号分隔,支持通配符) - 注意斜杠:写
node_modules/表示排除该目录及其全部子内容;写node_modules(无斜杠)可能只匹配同名文件
为什么 Mark as Excluded 对上传没用?它只管本地,不管远程
Mark Directory as > Excluded 是项目级语义标记,作用域仅限于本地索引、跳转、补全和重构范围。它会让 node_modules 在 Project 面板变灰、右键菜单消失、状态栏提示 Indexing paused for excluded files——但 Deployment 功能压根不认这个状态。
常见错觉:标完 Excluded 就以为“已经安全了”,结果上线前一同步,node_modules 被完整推到服务器上,不仅浪费带宽,还可能覆盖线上 vendor 或触发权限错误。
-
Excluded写进.idea/{project}.iml,只影响当前项目本地行为 - Deployment 排除规则存在
.idea/deployment.xml(或配置界面),两者完全隔离 - 如果用了多环境部署(如 dev/staging/prod),每套环境的
Exclude items by name都得单独检查一遍
排除 dist/ 或 build/ 后,前端资源却访问不到?检查是否误删了入口
前端项目常把构建产物放在 dist/,然后通过 Nginx 指向它。若你在 Deployment 中排除了 dist/,又没手动上传过一次,线上就真没这个目录——浏览器直接 404。
抓取指定 GitHub用户的 Stars 项目,生成标准化中文 Markdown 报告。用户提及「分析 GitHub stars」「导出收藏项目」「汇总 GitHub 星标」「生成 stars 报告」或粘贴含 ?tab=stars 的链接时触发。执行通过 bash...
这不是配置失败,而是逻辑冲突:你既想“不自动上传构建产物”,又希望“线上有可用静态资源”。必须明确区分「谁负责生成」和「谁负责发布」。
- 若构建在本地完成:上传前手动勾选
dist/→ 右键Upload to …,跳过全局排除规则 - 若构建在 CI 完成:Deployment 排除
dist/是对的,但要确保 CI 脚本把产出推到对应远程路径 - 别在
Exclude items by name里写index.html这类关键入口,否则整个站点不可访问
多个排除规则叠加时,优先级和递归行为怎么算?
Deployment 的排除是递归且无条件的:一旦路径匹配 Exclude items by name 中的任意模式,该路径及其所有子孙内容均被跳过,不参与任何上传、下载、同步操作。
但要注意规则之间不叠加生效,而是“命中即停”——没有“先排除 A 再包含 B”的白名单机制。比如你写了 node_modules/, node_modules/@types/,后一条完全多余;写了 dist/, dist/index.html,第二条也不会让 index.html 恢复上传。
- 模式匹配不区分大小写,但路径需严格对应(
DIST/≠dist/) - 不能用正则,只支持
*和?:例如*.tmp, logs/**/*.log(部分旧版不支持双星号,建议用logs/*) - 若同时配置了「项目创建时排除」和「Options 里排除」,以后者为准;修改后需点击 Apply 才生效
最易被忽略的一点:Deployment 排除只作用于你主动触发的上传/下载/同步动作,不影响 WebStorm 自动保存时的后台同步(如果开启了 Auto-upload)。所以关掉 Auto-upload 或确认其排除规则已同步更新,比单纯加一行 node_modules/ 更关键。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!









