Windows10下VS Code重命名含import语句的JS项目文件夹失败问题
问题描述
在JavaScript项目中,若文件夹内存在导入子文件夹文件的.js文件,VS Code无法重命名该文件夹,频繁触发权限错误:
Error: EPERM: operation not permitted, rename 'd:\project\parentFolder' -> 'd:\project\newName'
复现步骤
- 空项目中创建
parentFolder,内部新建parentFile.js、childFolder子文件夹,子文件夹内创建childFile.js; - 在
parentFile.js中通过import语句导入childFile.js; - 打开
parentFile.js后尝试重命名parentFolder,VS Code卡顿后报错。即使关闭该文件,只要之前打开过,重命名仍失败;仅重启VS Code且未打开该文件时可正常重命名。
环境信息
- Windows 10(Dell Precision M6700);
- VS Code 1.74.2 x64(用户版、系统版均测试);
- 已排除扩展、自定义设置、Node.js、系统重装的影响,另一台Windows 10 Dell设备同样出现该问题。
解决方法
1. 重启JavaScript/TypeScript语言服务
VS Code的JS语言服务基于TypeScript服务,即使关闭文件,它可能仍持有文件句柄:
- 按下
Ctrl+Shift+P打开命令面板; - 输入并执行
TypeScript: Restart TS Server; - 执行完成后尝试重命名文件夹。
2. 重载VS Code窗口
如果重启语言服务无效,直接重载窗口释放所有文件锁:
- 按下
Ctrl+Shift+P打开命令面板; - 输入并执行
Developer: Reload Window; - 窗口重载完成后,不要打开相关JS文件,直接重命名文件夹。
3. 调整文件监听排除规则(可选)
通过设置让VS Code不监听目标文件夹的变化,避免持有锁:
- 打开VS Code设置(
Ctrl+,); - 搜索
files.watcherExclude; - 添加规则:
"**/parentFolder/**": true(替换为实际文件夹路径); - 保存设置后尝试重命名,注意此方法会影响该文件夹内的代码提示等功能,重命名后可移除规则。
4. 手动释放文件锁(进阶)
使用Windows的Process Explorer工具定位并释放文件锁:
- 打开Process Explorer;
- 按下
Ctrl+F,输入parentFolder或相关文件名; - 找到持有锁的VS Code相关进程,右键选择
Close Handle; - 关闭工具后尝试重命名文件夹。
内容的提问来源于stack exchange,提问作者Lucas Chamma Nahas
相关产品推荐
相关产品推荐

