我使用gulp.js。我想将来自gulp -yaml的结果JSON数据直接传递到gulp-ejs中。我的逻辑说我可能必须在某个时候变得同步?
到目前为止我尝试过的是:
var yaml = require('gulp-yaml');
var ejs = require('gulp-ejs');
gulp.task('yaml', function(){
return gulp.src('./path/to/template.ejs')
.pipe( ejs( gulp.src('./path/to/data.yml').pipe( yaml() ) ) )
.pipe(gulp.dest('./path/to/dest'));
});
我意识到以上内容是一个愚蠢的脚本,因为我实际上是想将流作为参数传递给ejs
。而且正如预期的那样,它是行不通的。我已经尝试了许多其他事情,但我猜想以前有人这样做过吗?
我认为gulp-data与解决方案有关...
您可能不需要gulp-data插件即可完成此操作;就像您说的那样,您只是将选项同步传递给ejs插件,而您只需要一个yaml配置文件。所以这可能更好:
var yaml = require('js-yaml');
var ejs = require('gulp-ejs');
var fs = require('fs');
gulp.task('ejs-with-yaml', function () {
return gulp.src('path/to/template.ejs')
.pipe(ejs(yaml.safeLoad(fs.readFileSync('path/to/data.yml', 'utf-8'))))
.pipe(gulp.dest('path/to/dest'));
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句