我在gulp.src函数中使用了一个基于正则表达式的路径,即。,
gulp.task('gen-templateCache', function() {
return gulp.src('app/client/pages/**/views/**/markup/*.html')
.pipe(templateCache('new-templates.js'))
.pipe(gulp.dest(function(file){
//Access the src path
//Generate and Return the dest path based on the src path
}));
});
正如您所看到的,我使用正则表达式'app/client/pages/**/views/**/markup/*.html'
来生成此gulp任务的src路径,因为我的源文件位于多个文件夹中。
我的要求是我还需要将结果保存在相对于我的src的多个文件夹中。
即,我们说我的gulp任务结果文件是'template.js'
。现在我想将此结果保存在'app/client/pages/**/views/template.js'
我该怎么做?
答案 0 :(得分:1)
我仍然无法找到解决此问题的通用解决方案,但我能够成功找到适合我特定gulp任务的解决方案:
基本上我在src文件上执行的任务是'gulp-angular-templatecache'(https://www.npmjs.com/package/gulp-angular-templatecache)
gulp.task('gen-templateCache', function() {
var destination = '';
return gulp.src('app/client/pages/**/views/**/markup/*.html')
.pipe(templateCache('partials.js', {
root: '',
module: 'pageApp',
transformUrl: function(url) {
var ind = url.lastIndexOf('\\');
var partialName = url.substring(ind+1);
var viewsIndex = url.indexOf('\\views\\');
var viewsPath = url.substring(0,viewsIndex+7);
destination = "./app/client/pages/"+viewsPath;
return partialName;
}
}))
.pipe(gulp.dest(function() {
return destination;
}));
});
此解决方案仅适用于上述任务的情况,因为上述任务在第二个参数中采用名为transformUrl的选项,其中inturn是以文件url作为参数的函数。但是,我仍然会欣赏通用解决方案。