使用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