Gulp 如果不存在文件,则停止写入文件

Gulp 如果不存在文件,则停止写入文件,gulp,Gulp,如何使gulp仅在没有现有文件的情况下写入文件 波纹管解决方案适用于alpha格式的gulp 4.0 // for when gulp 4.0 releases .pipe(gulp.dest(conf.plugScss.dist, {overwrite: false})) Gulp3.x中没有确切的等价物,但您可以使用来实现相同的目标 gulp changed通常用于仅写入自上次写入目标文件夹以来已更改的文件。但是,您可以提供自定义的hasChanged功能。在您的情况下,您可以编写一个函数

如何使gulp仅在没有现有文件的情况下写入文件

波纹管解决方案适用于alpha格式的gulp 4.0

// for when gulp 4.0 releases
.pipe(gulp.dest(conf.plugScss.dist, {overwrite: false}))

Gulp3.x中没有确切的等价物,但您可以使用来实现相同的目标

gulp changed
通常用于仅写入自上次写入目标文件夹以来已更改的文件。但是,您可以提供自定义的
hasChanged
功能。在您的情况下,您可以编写一个函数,只需使用以下命令检查文件是否已存在:


Gulp3.x中没有确切的等价物,但您可以使用来实现相同的目标

gulp changed
通常用于仅写入自上次写入目标文件夹以来已更改的文件。但是,您可以提供自定义的
hasChanged
功能。在您的情况下,您可以编写一个函数,只需使用以下命令检查文件是否已存在:


我通过大口喝水龙头解决了这个问题

conf.plugScss.files.forEach(function (file, index, files)
    {
        gulp.src(file)
            .pipe(rename({
                prefix: "_",
                extname: ".scss"
            }))
            .pipe(tap(function (file, t)
            {
                file.contents = Buffer.concat([
                    new Buffer('HEADER'),
                    file.contents
                ]);
                var fileCheck = function(err, stat) {
                    if (err !== null && err.code == 'ENOENT')
                    {
                        fs.writeFile('dist/' + file.path.split('/').reverse()[0], file.contents)
                    }
                    return null;
                }
                fs.stat('dist/' + file.path.split('/').reverse()[0], fileCheck.bind(this));
            }));
            // for when gulp 4.0 releases
            // .pipe(gulp.dest(conf.plugScss.dist, {overwrite: false}))
    });

我通过大口喝水龙头解决了这个问题

conf.plugScss.files.forEach(function (file, index, files)
    {
        gulp.src(file)
            .pipe(rename({
                prefix: "_",
                extname: ".scss"
            }))
            .pipe(tap(function (file, t)
            {
                file.contents = Buffer.concat([
                    new Buffer('HEADER'),
                    file.contents
                ]);
                var fileCheck = function(err, stat) {
                    if (err !== null && err.code == 'ENOENT')
                    {
                        fs.writeFile('dist/' + file.path.split('/').reverse()[0], file.contents)
                    }
                    return null;
                }
                fs.stat('dist/' + file.path.split('/').reverse()[0], fileCheck.bind(this));
            }));
            // for when gulp 4.0 releases
            // .pipe(gulp.dest(conf.plugScss.dist, {overwrite: false}))
    });

谢谢你的回答。不过我已经解决了。见下面我的答案。但是为了公平起见,你解决了它+谢谢你的回答。不过我已经解决了。见下面我的答案。但是为了公平起见,你解决了它+1.