首页 文章

您可能需要一个适当的加载器来处理此文件类型,使用Webpack

提问于
浏览
-1

在为我的项目设置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"
    })
  ]
};

Edit 在我的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" }]
  ]
}

1 回答

  • 0

    在jsx / tsx文件中,反应元素由jsx编译器转换为

    ReactDom.render(React.createElement(

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

    有关更多说明,请点击此链接https://reactjs.org/docs/react-without-jsx.html

相关问题