在gulp任务中,我需要替换文件中的相同链接。 在我的任务中,我需要:
为此,我将gulp-batch-replace软件包与其他软件包一起使用。
我的想法是在第一个管道中创建一个数组(array是一个全局数组变量),然后将其传递到替换对的下一个管道。
Gloabal数组是通过管道中的点击调用创建的,但是替换不起作用。我认为当我调用管道2时此数组为空。
Tap中的外部呼叫是否异步?谢谢
这是我的代码。
var tap = require('gulp-tap');
var replaceAll = require('gulp-batch-replace');
var path = require('path');
gulp.task('pages', function () {
var replaceThis = [];
function replaceFileContent(file) {
var newFileName = path.basename(file.path).trim();
var oldFileName = newFileName.includes('.min') ?
newFileName.replace('.min', '').trim() :
newFileName.substr(0, newFileName.indexOf('.')) + '.min' + newFileName.substr(newFileName.indexOf('.')).trim();
replaceThis.push([oldFileName, newFileName]);
console.log(oldFileName + " ---> " + newFileName);
}
gulp.src('site/dist/css/**/*.css')
.pipe(tap(replaceFileContent))
.pipe(replaceAll(replaceThis))
.pipe(gulp.dest('./site/dist/'));
console.log("end");
});