【问题标题】:You may need an appropriate loader to handle this file type, with Webpack你可能需要一个合适的加载器来处理这种文件类型,使用 Webpack
【发布时间】:2019-05-10 10:12:18
【问题描述】:

在为我的项目设置 webpack 时,我不断收到以下错误。我已经在 webpack 之前构建了我的项目,我现在正在设置它,以便我可以丑化我的项目。所以请原谅我对此的无知。

ERROR in ./client/src/index.js
Module parse failed: Unexpected token (42:2)
You may need an appropriate loader to handle this file type.
ReactDOM.render(
<Provider store={store}>
<Router history={hist}>
<div>

webpack.config.js

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
  entry: "./client/src/index.js",
  output: {
    path: path.join(__dirname, "/dist"),
    filename: "bundle.js"
  },
  resolve: {
    extensions: [".js", ".jsx"]
  },
  watch: true,
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        test: /\.(sa|sc|c)ss$/,
        use: ["style-loader", "css-loader", "sass-loader"],
        use: {
          loader: "babel-loader"
        }
      }
    ],
    loaders: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        loader: "babel-loader",
        options: { presets: ["es2015", "react"] },
        include: [path.resolve(__dirname, "client")]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./src/public/index.html"
    })
  ]
};

编辑 在我的 index.js 中,我尝试了建议的答案

ReactDOM.render(
  React.createElement(
    <Provider store={store}>

.babelrc

{
  "presets": ["es2015", "env", "react"],
  "plugins": [
    "transform-class-properties",
    "transform-react-jsx",
    "transform-object-rest-spread",
    [
      "module-resolver",
      {
        "root": ["./src"]
      }
    ],
    ["import-rename", { "^(.*)\\.jsx$": "$1" }]
  ]
}

【问题讨论】:

  • 请使用 ReactDom.render(React.createElement(
  • 您有.babelrc 文件设置吗?
  • @Hespen,刚刚添加。

标签: reactjs webpack webpack-4


【解决方案1】:

在 jsx/tsx 文件中,jsx 编译器将 react 元素转换为

ReactDom.render(React.createElement(

但由于您的索引文件是 .js 文件,您需要手动执行此操作。

更多解释请点击此链接 https://reactjs.org/docs/react-without-jsx.html

【讨论】:

  • 我更新了我的问题,我尝试了这个,但我仍然遇到同样的错误。
猜你喜欢
  • 2016-09-28
  • 2016-07-13
  • 2016-02-01
  • 2016-10-22
  • 2017-06-20
  • 2018-11-22
  • 2017-10-21
  • 2018-05-03
相关资源
最近更新 更多