0

grunt-dust用来编译dustjs模板,但现在我遇到了我需要使用灰尘助手(如@eq)的问题,显然grunt-dust完全忽略了它。

我已经dustjs-helpers通过 npm 安装,但不知道如何调整我的 grunt 配置来处理它们。我简化了它以保留相关部分。

grunt.initConfig( {
    ...

    dust: {
        defaults: {
            files: {
                'public/js/views.js': [ ... directories ... ]
            },
            options: {
                wrapper:  false,
                basePath: 'private/',
                useBaseName: true,
                wrapperOptions: {
                    templatesNamesGenerator: function( options, file ) {
                        // returns an altered template name
                    }
                }
            }
        }
    },

    ...
} )

...

grunt.loadNpmTasks('grunt-dust')

...

grunt.registerTask( ... )

到目前为止,它工作正常并按预期编译了dustjs模板。

我怎样才能dustjs-helpers包含grunt-dust

4

1 回答 1

1

当 grunt-dust 编译模板时,您不需要可用的帮助程序。编译是将模板转换为 Dust 函数的过程,实际上不会调用助手。

当您确实需要可用的dustjs-helpers 时,是在渲染期间。因此,无论您如何渲染模板,您都需要确保将助手附加到您用于渲染的灰尘实例。你只需通过要求它们来做到这一点:

let dust = require('dustjs-linkedin');
require('dustjs-helpers'); // helpers autoattach to the `dust` object

dust.render(template, context); // this template will be able to use helpers
于 2016-03-23T23:56:18.037 回答