我无法注册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;
运行carttemplate
期望数学帮助程序存在的代码会导致找不到错误math
帮助程序。
我已经尝试为帮助程序本身添加一个Alias,移动代码以便帮助程序首先执行无效 - 它只是无法及时工作。
答案 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!
在我的情况下,它是两个类似命名的模块ifpricezero
和ifpricenotzero
- 没有看到差异并继续寻找。