首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Webpack 4型车把装载机

Webpack 4型车把装载机
EN

Stack Overflow用户
提问于 2018-03-01 18:43:24
回答 2查看 6.3K关注 0票数 7

我一直在看webpack如何使用车把的例子--装载机,但似乎没有一个能与webpack 4合作。

误差

ERROR in ./src/templates/property-list-item.hbs Module build failed: TypeError: Cannot read property 'handlebarsLoader' of undefined at getLoaderConfig (/Users/Sam/Desktop/mettamware/Public/js/node_modules/handlebars-loader/index.js:24:37) at Object.module.exports (/Users/Sam/Desktop/mettamware/Public/js/node_modules/handlebars-loader/index.js:32:15) @ ./src/property-list.js 5:0-58 40:23-31 @ ./src/app.js

当我在node_modeules/handlerbars-loader/index.js**,中查看时,冒犯的函数是**

代码语言:javascript
运行
复制
function getLoaderConfig(loaderContext) {
  var query = loaderUtils.getOptions(loaderContext) || {};
  var configKey = query.config || 'handlebarsLoader';
  var config = loaderContext.options[configKey] || {};
  delete query.config;
  return assign({}, config, query);
}

My webpack.config.js

代码语言:javascript
运行
复制
const path = require('path');

module.exports = {
  entry: './src/app.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.hbs$/,
        use: [{
          loader: "handlebars-loader",
          options: {
            helperDirs: path.resolve(__dirname, "./src/helpers")
          }
        }]
      }
    ]
  },
  node: {
    fs: 'empty'
  }
};

如果有人能帮忙,我会非常感激的。我已经寻找了几个小时的解决方案,并尝试了很多事情,但什么也没有得到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-20 17:46:38

在Webpack 4中,loaderContext.options已被loaderContext.rootConfig所取代。

此承诺已经被制作到handlebars-loader软件包中,以使其与Webpack 4兼容,但是这还没有发布。

目前,我已经卸载了handlebars-loader,并且正在使用这叉子

以下步骤解决了我的问题:

运行这两个命令

npm uninstall handlebars-loader

npm install @icetee/handlebars-loader

webpack.config.js**,中的替换**

代码语言:javascript
运行
复制
loader: "handlebars-loader"

代码语言:javascript
运行
复制
loader: "@icetee/handlebars-loader"
票数 2
EN

Stack Overflow用户

发布于 2018-03-02 19:59:28

也是在升级一个老webpack四…

显然,它以前可以在配置上设置自定义属性。那就是它正在寻找handlebarsLoader的地方。

当您在其上设置handleBarLoader属性时,它会发出此错误。

对于加载程序选项: webpack 2不再允许配置中的自定义属性。 应更新加载器,以便在module.rules中通过加载程序选项传递选项。 在更新加载器之前,可以使用LoaderOptionsPlugin将这些选项传递给加载程序:

代码语言:javascript
运行
复制
     plugins: [
       new webpack.LoaderOptionsPlugin({
         // test: /\.xxx$/, // may apply this only for some modules
         options: {
           handlebarsLoader: ...
         }
       })
     ]

在我的例子中,现在就这样设置:

代码语言:javascript
运行
复制
     plugins: [
       new webpack.LoaderOptionsPlugin({
         options: {
           handlebarsLoader: {}
         }
       })
     ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49056600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档