Wepy 微信小程序报错:EXIST: file already exists, mkdir '***/static'

Note: 先提一句,Wepy 官方目前已经不再维护,所以新项目或者较新的项目建议尽量避免使用。

公司有个微信小程序使用了 Wepy 2.0 开发,发现首次开启调试或编译时会出现下面的错误:

1
2
[16:58:02] ERR! EEXIST: file already exists, mkdir 'P:\centanet\chat-wepy2.0\weapp\static'
[16:58:02] ERR! compile Compile failed. Add "--log trace" to see more details

前提是在 wepy.config.js 中配置了 static: ['static'],在删除整个编译目录 weapp 后进行编译就会出现这个错误。

目前两个解决办法:

1. 重新运行

再次运行一次 build 即可恢复正常,如果你在命令中增加了 --watch 选项,那么任意找一个文件重新保存一次即可触发重新编译就正常了。

2. 修改代码

修改文件 node_modules\@wepy\cli\core\compile.js 第 171 行,将 fs.copy 修改为 fs.copySync 即可,修改后代码如下:

1
2
3
...
return fs.copySync(target, dest);
...

因为官方不再维护,所以只能我们临时性的自己修改代码,但还是要尽量避免在任何开发过程中采用改方法,因为修改仅在单机上生效,并不利于项目维护和协作。

References