汇编:如何控制输出扩展

时间:2014-10-14 15:41:28

标签: gruntjs assemble

我的问题是关于Assemble 0.4

我有一个名为“main.js.md.hbs”的输入文件 我需要将“main.js.html”作为输出名称 怎么做?
我有一个像这样的Grunt任务:
assemble: { options: { assets: '<%= config.dest %>/assets', flatten: true, layoutdir: 'templates/layouts', layout: 'base.hbs', data: 'data/metadata/*.{json,yml}', partials: 'templates/partials/*.hbs' }, docs: { options: { layout: 'markdown_doc.hbs' }, files: [{ expand: true, cwd: 'content', src: ['**/*.hbs'], dest: 'dist/', ext: '.html' }] } }

使用提供的配置,Assemble生成“main.html”(切断“.js”部分)。

1 个答案:

答案 0 :(得分:0)

我认为问题出在您的文件规范中。在src中,您将对所有.hbs文件进行通配,然后将扩展名指定为.html。覆盖main.js.md.hbs示例的一个解决方案是使用具有不同扩展名的两个不同文件规范来分离出* .js.md.hbs - &gt; * .js.html案例:

assemble: { 
    options: { 
        assets: '<%= config.dest %>/assets', 
        flatten: true, 
        layoutdir: 'templates/layouts', 
        layout: 'base.hbs', 
        data: 'data/metadata/*.{json,yml}', 
        partials: 'templates/partials/*.hbs' 
    }, 
    docs: { 
        options: { 
            layout: 'markdown_doc.hbs' 
        }, 
        files: [
            { 
                expand: true, 
                cwd: 'content', 
                src: ['**/*.js.md.hbs'], 
                dest: 'dist/', 
                ext: '.js.html'
            },
            { 
                expand: true, 
                cwd: 'content', 
                src: ['**/*.hbs', '!*.js.md.hbs'], 
                dest: 'dist/', 
                ext: '.html' 
            }
        ] 
    } 
}

我确定这不是优雅的长期解决方案,但我不确切知道你需要什么样的水星模式。我发现以下相关问题很有帮助,它还指出了Grunt File Globbing Patterns的文档。

Grunt expand files, what patterns are acceptable in src?