Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gulp 大口抱怨在运行clean&;时目录已经存在;部署任务_Gulp_Gulp Watch - Fatal编程技术网

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
任务中的.Try
return del(config.distDir+“/***”)或
del.sync(config.distDir+“/***”)文件。