当前位置: 首页 > 知识库问答 >
问题:

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

宇文学博
2023-03-14

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

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

似乎thar webpack忽略了“@Babel/预设反应”?配置如下。

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个答案

禹智渊
2023-03-14

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

您也不需要同时使用includeexclude属性。排除就足够了。

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