使用GULP4构建经常出现一个问题,
Error: EPERM: operation not permitted, mkdir 'E:\data\project\css'`
或者会报错
Error: ENOENT: no such file or directory, open 'E:\data\project\css\global.css'
原因是什么呢,网上搜索你会发现各种各样。。。
正常我们在构建前端项目时会先清除”./dist/“目录,类似如下的一个任务,下面任务会有什么问题吗?
const del = require('del');/*** 清除目标文件夹文件* @param {*} done*/function clean(cb) {del(['./rev/**', `${config.dist}/**`], { force: true });cb();}
上面代码,del其实是一个异步的,cb()可能在文件还没删除的时候就执行了,导致后续的文件操作跟clean的任务冲突,从而导致没有权限或创建文件夹不成功
修改为下面这样,问题解决
const del = require('del');/*** 清除目标文件夹文件* @param {*} done*/async function clean(cb) {await del(['./rev/**', `${config.dist}/**`], { force: true });cb();}
或
const del = require('del');/*** 清除目标文件夹文件* @param {*} done*/function clean(cb) {del.sync(['./rev/**', `${config.dist}/**`], { force: true });cb();}
gulp4构建报错: Error: EPERM: operation not permitted, mkdir