【问题标题】:Webpack config error: An appropriate loader to handle this file typeWebpack 配置错误:处理此文件类型的适当加载程序
【发布时间】:2019-07-18 04:18:30
【问题描述】:

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

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

似乎 thar 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,
  }
};

谢谢。

【问题讨论】:

    标签: javascript reactjs webpack


    【解决方案1】:

    加载器选项在最新版 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"
        ]
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-26
      • 1970-01-01
      • 2020-09-28
      • 2021-04-19
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多