Gulp 如果不存在文件,则停止写入文件
如何使gulp仅在没有现有文件的情况下写入文件 波纹管解决方案适用于alpha格式的gulp 4.0Gulp 如果不存在文件,则停止写入文件,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功能。在您的情况下,您可以编写一个函数
// 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.