doubleyong
管理员
管理员
  • 最后登录2025-12-02
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:8851回复:0

gulp 中del() 使用问题 ——— Error: EEXIST: file already exists

楼主#
更多 发布于:2017-05-22 13:15

图片:del使用.png




代码如上:写了一个reBuild任务,用于重新生成;  即:先删除以前的文件(使用node 中del模块),然后在执行"build"任务。


在测试过程中,发现第一次运行没有问题,第二次就要报错。


       

图片:error.png



错误信息:Error: EEXIST: file already exists, mkdir 'e:\guoxinan\classproject\class131\gulp\day01\dist\js'
    at Error (native)


错误分析:
       根据错误来看,路径已经存在,一直在找如何写路径。查了很多的资料,最后,发现不是路径问题,是del模块在删除时,没有写return关键字,导致的

方案:
      在del 前加上return ,问题就解决了。

为什么呢?
      原因: del是一个独立包,在执行删除dist文件夹 del(["./dist/**"]), 它是一个异步的操作
而且返回的是Promise;而且根据async-task-support,我们知道,只有return之后,其他依赖了myDelete的任务,才能保证执行顺序否则可能del还没有删除完东西,下一个依赖了myDelete的任务就开始了。
    这也是为什么我们在使用gulp时,要使用return关键字的原因
 
参考:https://segmentfault.com/q/1010000006124038
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号