[英]Compiling handlebars templates using Grunt
我正在尝试使用Grunt编译我的车把模板,如下所述。 没关系,但是它将所有的hbs文件编译为一个文件,效果不是很好。 我想为Menu1和Menu2目录创建一个单独的文件。 如果能以某种方式为每个目录执行单独的任务,那将非常棒。 但是,由于我仍在学习这些东西,所以找不到更好的方法来使它起作用。
或者,也许我可以通过某种方式使Handlebars分别编译每个文件。
项目结构:
/js/:
->/app/
app_init.js
->/templates/
-> /Menu1/
template1.hbs
template2.hbs
-> /Menu2/
template1.hbs
template2.hbs
Gruntfile.js
module.exports = function(grunt) {
var TEMPLATES_LOCATION = "./js/templates/",
TEMPLATES_EXTENSION = ".hbs",
TEMPLATES_OUTPUT_LOCATION = TEMPLATES_LOCATION,
TEMPLATES_OUTPUT_FILENAME = "compiled_templates.js";
grunt.initConfig({
watch: {
handlebars: {
files: [TEMPLATES_LOCATION + '**/*' + TEMPLATES_EXTENSION],
tasks: ['handlebars:compile']
}
},
handlebars: {
compile: {
src: TEMPLATES_LOCATION + '**/*' + TEMPLATES_EXTENSION,
dest: TEMPLATES_OUTPUT_LOCATION + TEMPLATES_OUTPUT_FILENAME,
options: {
amd: true,
namespace: "templates"
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-handlebars');
grunt.loadNpmTasks('grunt-contrib-watch');
}
任何人都可以请教吗?
我只是想出了一个小解决方法。 不知道这是否是最好的方法,但是它可以工作。
handlebars: { compile_Menu1: { src: TEMPLATES_LOCATION + '/Menu1/*' + TEMPLATES_EXTENSION, dest: TEMPLATES_OUTPUT_LOCATION+"Menu1"+TEMPLATES_OUTPUT_EXTENSION, options: { amd: true, namespace: "M1_templates" } }, compile_Menu2: { src: TEMPLATES_LOCATION + '/Menu2/*' + TEMPLATES_EXTENSION, dest: TEMPLATES_OUTPUT_LOCATION+"Menu2"+TEMPLATES_OUTPUT_EXTENSION, options: { amd: true, namespace: "M2_templates" } } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.