Webpack配置错误:处理此文件类型的适当加载器

时间:2019-02-24 17:46:28

标签: javascript reactjs webpack

我正在尝试使用Babel设置webpack来编译React文件。 Webpack配置是在带有Webpack扩展名的VSCode中自动生成的。我尝试在“预设”部分添加“ @ babel / preset-react”,但是它不起作用,并且出现此错误:

  

模块解析失败:意外令牌(11:16)   您可能需要适当的加载程序来处理此文件类型。

似乎Webpack忽略了“ @ babel / preset-react”?配置如下。

const path = require('path');
module.exports = {
  mode: 'development',
  entry: path.join(__dirname, 'index.js'),
  watch: true,
  output: {
    path: __dirname + '/dist',
    publicPath: '/dist/',
    filename: "bundle.js",
    chunkFilename: '[name].js'
  },
  module: {
    rules: [{
      test: /.jsx?$/,
      include: [
        path.resolve(__dirname, 'app')
      ],
      exclude: [
        path.resolve(__dirname, 'node_modules')
      ],
      loader: 'babel-loader',
      query: {
        presets: [
          ["@babel/env", {
            "targets": {
              "browsers": "last 2 chrome versions"
            }
          }],
          "@babel/preset-react"
        ]
      }
    }]
  },
  resolve: {
    extensions: ['.json', '.js', '.jsx']
  },
  devtool: 'source-map',
  devServer: {
    contentBase: path.join('/dist/'),
    inline: true,
    host: '0.0.0.0',
    port: 8080,
  }
};

谢谢。

1 个答案:

答案 0 :(得分:0)

加载器选项在最新版本的Webpack的options属性中给出,而不是query

您也不需要includeexclude属性。 exclude就足够了。

{
  test: /.jsx?$/,
  exclude: /node_modules/,
  loader: "babel-loader",
  options: {
    presets: [
      [
        "@babel/env",
        {
          targets: {
            browsers: "last 2 chrome versions"
          }
        }
      ],
      "@babel/preset-react"
    ]
  }
}