我刚刚从 grunt 转移到 gulp ,我想将我的把手模板(扩展名为.handlebars)预先编译成单独的.js文件。< / p>
发件人:
以
我试图使用gulp但无济于事。很多npm包都要求你将数据传递给编译器,但我的web应用程序中的数据主要是从ajax请求中收集的,然后传递给把手模板。
我的gulpfile.js:
// cache vars
var gulp = require('gulp'),
rename = require('gulp-rename'),
handlebars = require('gulp-compile-handlebars');
// start task
gulp.task('default', function(){
return gulp.src( 'www/templates/*.handlebars' )
.pipe( handlebars() )
.pipe( rename('*.js') )
.pipe( gulp.dest( 'www/templates' ) );
});
});
我从Grunt搬到Gulp的主要原因是因为grunt似乎不支持更新的车把版本(link here)。
有很多例子如何编译把手模板但不是我想要的方式(我的方式可行吗?)
另外,如果可能的话,我不想将我的把手js文件包装到命名空间中。
当我运行我的gulp任务时,没有任何.js文件生成任何想法?
答案 0 :(得分:1)
我有一个不太干净的解决方案适合我。我使用pump
+ gulp
,因为如果在处理管道时出现问题,请清理源代码。
:
const pump = require( 'pump' )
const handlebars = require( 'gulp-handlebars' )
gulp.task( 'default', ( done ) => {
const templates = [
'login',
'home'
] // <-- You may want to get the list of files programmatically ;)
let pipe = []
templates.forEach( ( template ) => {
pipe.push( gulp.src( 'www/templates/' + template + '.handlebars' ) )
pipe.push( handlebars() )
pipe.push( gulp.dest( 'www/templates/' ) )
} )
pump( pipe, done )
} )