Как использовать dustjs-помощники с пылью?

Я использую grunt-dust для компиляции шаблонов dustjs, но теперь я столкнулся с проблемой, что мне нужно использовать пылевые помощники (например, @eq) который, по-видимому, хрюкает пыль полностью игнорирует.

Я установил dustjs-helpers более npm, но просто не могу понять, как настроить мою грубую конфигурацию, чтобы справиться с ними. Я упростил это, чтобы сохранить соответствующие части.

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 ?

1 ответ

Решение

Вам не нужны помощники, доступные, когда grunt-dust формирует шаблоны. Компиляция - это процесс превращения шаблона в функцию Dust, и помощники фактически не будут вызываться.

Когда вам нужны пылесосы-помощники, они доступны во время рендеринга. Поэтому, как бы вы ни рендерили свои шаблоны, вам нужно убедиться, что помощники прикреплены к экземпляру пыли, который вы используете для рендеринга. Вы делаете это просто, требуя их:

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
Другие вопросы по тегам