Webpack车把登记助手

时间:2016-05-20 13:52:56

标签: handlebars.js webpack

我无法注册Handlebars Helper并让它及时注册Webpack。我不想使用把手加载器,因为我的HBS代码可能嵌套在HTML中,我无法保存文件。

在helpers.js



var handlebars = require('js/helpers/vendor/handlebars.min')
console.warn(handlebars, '<<<<<<< HANDLEBAR')
handlebars.registerHelper('math', function(lvalue, operator, rvalue) {
  lvalue = parseFloat(lvalue)
  rvalue = parseFloat(rvalue)
  return {
    '+': lvalue + rvalue,
    '-': lvalue - rvalue,
    '*': lvalue * rvalue,
    '/': lvalue / rvalue,
    '%': lvalue % rvalue,
    '>': lvalue > rvalue,
    '<': lvalue < rvalue,
    '>=': lvalue >= rvalue,
    '<=': lvalue <= rvalue,
    '!==': lvalue !== rvalue
  }[operator]
  console.warn(handlebars, '<<<<<<< HANDLEBAR Math Helper shows up in Handlebars.helpers')

})

// In Template.js

var handlebars = require('js/vendor/handlebars')
  ...handlebars.compile(carttemplate)
&#13;
&#13;
&#13;

运行carttemplate期望数学帮助程序存在的代码会导致找不到错误math帮助程序。

我已经尝试为帮助程序本身添加一个Alias,移动代码以便帮助程序首先执行无效 - 它只是无法及时工作。

2 个答案:

答案 0 :(得分:0)

尝试以这种方式重新组织代码:

helpers.js:

var handlebars = require('js/helpers/vendor/handlebars.min')

handlebars.registerHelper('math', function(lvalue, operator, rvalue) {
  ...
})

module.exports = {
    handlebars: handlebars
};

Template.js:

var heplers = require('./helpers')
var handlebars = heplers.handlebars;
...
handlebars.compile(carttemplate)

答案 1 :(得分:-1)

上述模式有所帮助,谢谢Bob Sponge!

在我的情况下,它是两个类似命名的模块ifpricezeroifpricenotzero - 没有看到差异并继续寻找。