我有以下两项任务:
gulp.task('get-react-bundles', function () {
return gulp.src(projPaths["reactPath"] + '/build/**/*.js')
.pipe(gulp.dest(function (file) {
return projPaths[path.basename(file.path, '.js')].path + 'ReactBundles/';
}));
});
gulp.task('update-react-bundles', ['get-react-bundles'], function () {
gulp.src(projPaths["reactPath"] + '/build/**/*.js')
.pipe(through.obj(function (file, enc, done) {
console.log(file.relative);
var bundle = projPaths[path.basename(file.path, '.js')];
csprojUtils.ensureInItemGroup(bundle.csProj, 'ReactBundles/' + file.relative, { index: bundle.itmGrpIdx, type: 'Content' });
this.push(file);
done();
}));
});
第一个任务根据文件名将 js 文件复制到适当的文件夹中。 第二项任务是从原始文件夹中获取文件名,并将其包含在复制它们的 .csproj 条目中。
through是 through2 模块,csprojUtils是 csproj-utils 模块。
以下是projPaths变量。
var projPaths = {
'js1': {
csProj: "../../../f1/f2/f2.csproj",
path: "../../../f1/f2/",
itmGrpIdx: 3
},
"reactPath": "./ReactUI/components"
};
我觉得可以使用 gulp-flatmap 来组合这两个任务,但是必须先从flatmap返回gulp流,然后才能执行csprojUtils commmand,以便文件位于该位置。被添加到csproj。
希望对此有所帮助。请原谅我的错误,这是我关于stackoverflow的第一篇文章。
谢谢。