一、问题现象
在 app.json 的 pages 数组中删除某个页面(如 pages/list/list)后,编译仍报错:
[ WXML 文件编译错误]
ENOENT: no such file or directory, open 'E:\web_work\weixin\miniprogram-1\pages\list\list.wxml'
(env: Windows, mp, 2.02.2609240; lib: 3.17.6)
已尝试的无效操作:
-
确认
app.json已保存、list路径已删除 -
关闭所有
list相关文件标签页 -
清除缓存(工具 → 清除缓存 → 全部清除)
-
确认磁盘上
pages/list/文件夹确实已不存在
二、根本原因
微信开发者工具内部的文件索引/编译状态残留。
工具在 Windows 上有时无法正确感知文件删除操作,即使源文件已删除、app.json 已更新、缓存已清除,编译器仍会拿着旧的页面路径去查找文件,从而报 ENOENT。这属于工具自身的状态同步缺陷,不是代码配置错误。
三、最终解决方案(有效)
彻底退出微信开发者工具进程,然后重新启动软件并打开项目。
注意:不是关闭当前项目、也不是关闭标签页,而是完全退出软件(确保任务栏/任务管理器中进程结束),再重新打开。重启后工具重新完整读取项目文件状态,残留索引被清除,编译恢复正常。
关键点:清缓存 ≠ 重启软件。缓存清除只清理编译缓存,不重置工具内部的文件索引和运行时状态,所以本例中清缓存无效,必须重启进程。