Gulp 大口抱怨在运行clean&;时目录已经存在;部署任务
我在我的项目中设置了以下吞咽任务。在我添加Gulp 大口抱怨在运行clean&;时目录已经存在;部署任务,gulp,gulp-watch,Gulp,Gulp Watch,我在我的项目中设置了以下吞咽任务。在我添加dist:images任务之前,一切都很顺利 现在,当使用dist:watch任务时,每隔运行一次就会导致错误 Error: EEXIST: file already exists, mkdir '/Users/toby/src/my-project/dist/imgs' 我可以看出,清理任务在其他任务开始之前就完成了。我还测试了没有其他任务正在创建该文件夹…那么为什么dist:images任务正在创建该目录,然后又抱怨它呢 这是密码 /** * d
dist:images
任务之前,一切都很顺利
现在,当使用dist:watch
任务时,每隔运行一次就会导致错误
Error: EEXIST: file already exists, mkdir '/Users/toby/src/my-project/dist/imgs'
我可以看出,清理任务在其他任务开始之前就完成了。我还测试了没有其他任务正在创建该文件夹…那么为什么dist:images
任务正在创建该目录,然后又抱怨它呢
这是密码
/**
* dist:clean
*/
gulp.task('dist:clean', function () {
del(config.distDir + "/**/*");
});
gulp.task('dist:html', ['dist:clean'], function () {
return gulp.src(config.htmlFiles)
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist:images', ['dist:clean'], function () {
return gulp.src(config.imgFiles, {base: "web"})
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist:styles', ['dist:clean'], function () {
console.log(config.lessMainFile);
return gulp.src(config.lessMainFile)
.pipe(debug())
.pipe(less().on('error', function (err) {
console.log(err);
}))
.pipe(cssmin().on('error', function (err) {
console.log(err);
}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(config.distDir + "/css"));
});
gulp.task('dist:src', ['dist:clean', 'src']);
/**
* dist:browserify
*/
gulp.task("dist:browserify", ['dist:src'], function () {
return browserify({
basedir : '.',
debug : true,
entries : [config.buildJsDir + '/src/main.js'],
cache : {},
packageCache: {}
})
.bundle()
.pipe(source('js/main.js'))
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist', ['dist:html', 'dist:images', 'dist:styles', 'dist:src', 'dist:browserify']);
gulp.task('dist:watch', ['dist'], function () {
return gulp.watch(config.srcAllTypeScript.concat(config.webDir + "/**/*"), ['dist']);
});
提前感谢您的帮助此解决方案与吞咽和观看任务非常相关。 每次任务中的文件更改时,您都会删除
config.imgFiles
目录,并且每次文件更改时,您也会创建文件夹,因此您最终会处于操作系统争用状态
只有在构建的初始开始时才使用dist:clean
任务
/**
* dist:clean
*/
gulp.task('dist:clean', function () {
del(config.distDir + "/**/*");
});
gulp.task('dist:html', function () {
return gulp.src(config.htmlFiles)
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist:images', function () {
return gulp.src(config.imgFiles, {base: "web"})
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist:styles', function () {
console.log(config.lessMainFile);
return gulp.src(config.lessMainFile)
.pipe(debug())
.pipe(less().on('error', function (err) {
console.log(err);
}))
.pipe(cssmin().on('error', function (err) {
console.log(err);
}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(config.distDir + "/css"));
});
gulp.task('dist:src', function() {
// I did not see any `dist:src` task, so I added a placeholder
});
/**
* dist:browserify
*/
gulp.task('dist:browserify', function () {
return browserify({
basedir : '.',
debug : true,
entries : [config.buildJsDir + '/src/main.js'],
cache : {},
packageCache: {}
})
.bundle()
.pipe(source('js/main.js'))
.pipe(gulp.dest(config.distDir));
});
gulp.task('dist', ['dist:html', 'dist:images', 'dist:styles', 'dist:src', 'dist:browserify']);
gulp.task('dist:watch', ['dist'], function () {
return gulp.watch(config.srcAllTypeScript.concat(config.webDir + "/**/*"), ['dist']);
});
gulp.task('build', ['dist:clean', 'dist', 'dist:watch']);
这比以前更糟
['dist:clean','dist','dist:watch']
表示您同时运行dist:clean
和dist
。它不会在dist
之前运行dist:clean
。阅读dist:clean
任务中的.Tryreturn del(config.distDir+“/***”)或del.sync(config.distDir+“/***”)文件。