Как заставить шаблоны усов работать в бранче - PullRequest
1 голос
/ 26 февраля 2012

Я хочу использовать шаблоны усов с Brunch. Это мой файл config.coffee:

{languages, plugins} = require 'brunch-extensions'

# Make config loadable via require() for brunch.
exports.config =
  # Available plugins:
  # * AssetsPlugin: copy `app/assets` contents to `build/`
  plugins: [plugins.AssetsPlugin]

  # Contains a list of output filenames that your application would generate.
  # Format:
  #
  # 'filename': 
  #   languages:
  #     'regExp, with which input files will be matched': language class
  #   order:
  #     before: [files, that would be loaded before anything else]
  #     after: [files, that would be loaded after anything else]
  #
  files:
    'scripts/app.js':
      languages:
        '\.js$': languages.JavaScriptLanguage
        '\.coffee$': languages.CoffeeScriptLanguage
        '\.eco$': languages.EcoLanguage
        '\.mustache$': languages.HoganLanguage
      order:
        before: [
          'vendor/scripts/console-helper.js'
          'vendor/scripts/jquery-1.7.js'
          'vendor/scripts/underscore-1.1.7.js'
          'vendor/scripts/backbone-0.5.3.js'
        ]

    'styles/app.css':
      languages:
        '\.css$': languages.CSSLanguage
        '\.styl$': languages.StylusLanguage
      order:
        before: ['vendor/styles/normalize.css']
        after: ['vendor/styles/helpers.css']

Но я получил следующую ошибку при запуске brunch watch:

[17:27:45]: [Brunch]: cannot parse config entry 
config.files['scripts/app.js'].languages['.mustache$']: TypeError: undefined is not a function.

1 Ответ

1 голос
/ 27 февраля 2012

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

npm install https://github.com/brunch/brunch-extensions/tarball/master

Или вы можете добавить свои HoganLanguage, из их github :

hogan = require 'hogan.js'
{BaseLanguage} = require './base'

# Requires Hogan 1.0.4
#
# Example:
# $(@el).html(template.render name: "mdp", city: "SF")
class exports.HoganLanguage extends BaseLanguage
  compile: (path, callback) ->
    @readFile path, (error, data) =>
      return callback error if error?
      try
        content = hogan.compile data, asString: yes
        callback null, "exports.render = function(data) {
          var t = new Hogan.Template();
          t.r = #{content};
          return t.render(data);
        }"
      catch error
        callback error

Это должно работать нормально, если вы просто установите hogan.js и измените на {BaseLanguage} = require 'brunch-extensions/lib/languages/base' выше.

...