webstorm 无文件级只读保护,但可通过禁用自动删除、开启删除前确认、结合vcs状态识别关键文件实现等效防护;需设置confirmation为ask、禁用auto-clean插件、排除远程敏感路径,并辅以系统权限或git锁定。

WebStorm 本身不提供「文件级只读保护」,但可通过组合设置实现等效效果:禁用自动删除 + 开启删除前确认 + 配合版本控制状态识别关键文件。
删除操作前必须弹窗确认
这是防误删最直接的防线。WebStorm 的 Confirmation 设置控制所有删除行为是否弹窗,包括在项目视图中按 Delete、右键 Delete、或拖入回收站等操作。
- 路径:
Settings / Preferences → Appearance & Behavior → System Settings → Confirmation - 关键勾选项:
When files are deleted下选择Ask(不是Silently remove或Do not remove) - 注意:
Do not remove是指「不从 VCS 中移除」,它不会阻止物理删除,反而容易让人误以为文件安全——实际文件照删,只是 Git/SVN 记录还在
关闭「静默清理未使用文件」类自动行为
某些插件或功能会悄悄移除“未引用”或“未打开”的文件,比如旧版 File Watcher 清理输出、或某些部署插件的同步策略。这类行为不会弹窗,且难以追溯。
- 检查
Settings → Tools → Deployment → Options,确保未勾选Clean remote paths before upload或类似自动清理选项 - 禁用任何带
auto-clean、remove unused字样的第三方插件(如某些 CSS/JS 构建辅助工具) - 如果用了
File Watchers,确认其Output path指向的是构建目录(如dist/),而非源码目录;否则保存时可能覆盖或清空源文件
用版本控制状态视觉化标记关键文件
Git/SVN 状态本身是天然的保护提示。已提交(green)或已暂存(blue)的文件,一旦被删,WebStorm 会在项目树里立刻标为 red(deleted),并显示「Would you like to remove it from version control?」——这个二次确认比纯物理删除更难跳过。
- 确保项目已正确接入 VCS:
VCS → Import into Version Control或Enable Version Control Integration - 不要长期使用
Do not add策略创建新文件,否则它们没有版本状态,删了就真没了 - 对核心配置文件(如
webpack.config.js、tsconfig.json),可右键 →Git → Add to Git强制纳入跟踪,哪怕还没 commit
远程部署时排除敏感路径
如果你通过 SFTP/FTP 同步到服务器,误删常发生在「本地删了 → WebStorm 自动同步删远程」。这时要主动切断上传/下载链路。
- 打开
Settings → Build, Execution, Deployment → Deployment → Excluded Paths - 点击
Add→Deployment path,填入你不想被覆盖的远程路径,例如/var/www/html/wp-config.php或/config/ - 排除后,该路径下任何文件变更(含删除)都不会被同步,本地删了也不会触发远程删
真正容易被忽略的是:WebStorm 的「删除确认」只管 IDE 内部操作,对终端执行的 rm -rf、外部脚本清理、或 Git 命令行强制重置完全无效。所以关键文件最好配合操作系统级权限(如 chown root:root + chmod 444)或 Git git update-index --assume-unchanged 双保险。











