繁体   English   中英

使用Grunt编译车把模板

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM