我正在将此handlebars-loader用于Webpack4。现在,我想使用自定义帮助程序,但我只会遇到此错误
模板执行中的错误失败:TypeError:__default(...)。call不是函数
TypeError中的错误:__default(...)。call不是函数
这是我的webpack.config
//handlebars-loader
{
test: /\.(hbs)$/,
loader: "handlebars-loader",
options: {
helperDirs: [path.join(__dirname, './src/hbs/helpers')],
partialDirs: [path.join(__dirname, './src/hbs/partials')]
},
}
这是我的简单帮手
const Handlebars = require('handlebars');
Handlebars.registerHelper('repeat', function(n) {
console.log(n);
});
以及我的使用方式
{{#repeat 10}}
<span> repeat</span>
{{/repeat}}
有人知道我在做什么错吗?
答案 0 :(得分:1)
谢谢,格雷戈尔!这整天让我感到沮丧!
我在帮助文件checkActive.js中有一个简单的功能:
const Handlebars = require("handlebars")
Handlebars.registerHelper("checkActive", function (pageName, linkedPageName) {
return pageName === linkedPageName ? "active" : ""
})
这行不通,并给了我这个错误:
ERROR in Template execution failed: TypeError: __default(...).call is not a function
ERROR in TypeError: __default(...).call is not a function
我找到了您的解决方案并进行了尝试。看吧,它起作用了!这就是我现在使用的:
module.exports = function (pagename, linkedPageName) {
return pagename === linkedPageName ? "active" : ""
console.log(pagename)
};
要使其正常工作,您需要将该函数保存在文件中,该文件的名称与您正在调用的车把帮助器函数相同,即。就我而言:checkActive.js
答案 1 :(得分:0)
我找到了解决方案。我必须将帮助程序导出为模块,然后它才能工作。
//repeat.js
module.exports = function(times, options) {
console.log(times);
};