2016-03-03 11 views
0

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

Я установил 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?

+0

Предполагая, что грубая пыль не делает ничего слишком странного, вы можете просто «потребовать (« dustjs-linkedin »); require ('dustjs-helpers'); 'наверху вашего файла grunt и который должен регистрировать помощников. – Interrobang

+0

@Interrobang Спасибо за предложение - я попробовал, но, к сожалению, изменений нет (и никаких сообщений об ошибке). Он просто компилирует шаблоны снова, полностью игнорируя все вспомогательные операторы. – Katai

+0

Хорошо, я настроюсь и посмотрю. – Interrobang

ответ

1

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

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

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