javascript - Webpack 打包 ReactDOM 导致 loader 错误

标签 javascript reactjs webpack

当我运行webpack --modedevelopment时,出现以下错误:

编辑 请求查看我的 .babelrc 的评论,添加在下面 - 我已尝试将索引和应用程序文件的所有组合都作为 .jsx 文件或分别作为 .jsx 文件,但无济于事。 - 我还尝试删除并读取所有节点模块作为节点的最新版本(v10.x.x)

ERROR in ./src/index.js 4:16
  Module parse failed: Unexpected token (4:16)
  You may need an appropriate loader to handle this file type.
  | import ReactDOM from "react-dom";
  | import app from "./app.js";
 ReactDOM.render(<app />, document.getElementById("root"));

app.js

import React, {Component} from "react";
import {hot} from "react-hot-loader";
import "./app.css";

class app extends Component{
  render(){
    return(
      <div className="app">
        <h1> Hello, World! </h1>
      </div>
    );
  }
}

export default app;

index.js

import React from "react";
import ReactDOM from "react-dom";
import app from "./app.js";
ReactDOM.render(<app />, document.getElementById("root"));

webpack.config.js

const path = require("path");
const webpack = require("webpack");

module.exports = {
  entry: "./src/index.jsx",
  mode: "development",
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /(node_modules|bower_components)/,
        loader: "babel-loader",
        options: { presets: ["@babel/env"] }
      },
      {
        test: /css\*\.css$/,
        use: ["style-loader", "css-loader"]
      }
    ]
  },
  resolve: { extensions: ["*", ".js", ".jsx"] },
  output: {
    path: path.resolve(__dirname, "dist/"),
    publicPath: "/dist/",
    filename: "bundle.js"
  },
  devServer: {
    contentBase: path.join(__dirname, "public/"),
    port: 3000,
    publicPath: "http://testsite.test/",
    hotOnly: true
  },
  plugins: [new webpack.HotModuleReplacementPlugin()]
};

{
  "presets": [
    "env",
    "react",
    "stage-0"
  ],
  "plugins": [
    "transform-class-properties",
    "transform-decorators",
    "transform-react-constant-elements",
    "transform-react-inline-elements"
  ]
}

我很快就会尝试将其加载到 GH 上,但我的 GH 帐户和设备连接现在遇到了一些真正的问题(ssh key 问题)。请耐心等待,希望以上内容足以提供帮助。

编辑#2:这是我的 github 存储库 https://github.com/johnfwebdev/testsite.test

最佳答案

像这样用babel改造react jsx,试试吧

.babelrc

{
  "presets": [["@babel/preset-env"]],
  "plugins": [
    "@babel/plugin-transform-react-jsx"
  ]
}

关于javascript - Webpack 打包 ReactDOM 导致 loader 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55954748/

相关文章:

javascript - super Backbone

javascript - 如何使用 Javascript 将括号作为文本插入 HTML

javascript - 我怎样才能解构一个 React Prop 并仍然访问其他 Prop ?

css - 为什么 Devextreme 网格溢出了它的父容器,为什么它没有创建垂直滚动条?

Webpack 配置(静态文件)

javascript - 如果文本超过 10 个字母,则显示更多/更少选项

javascript - 带 JS 的 SVG map - 更改悬停时多个路径的状态

javascript - React hook 表单handlesubmit 不起作用

javascript - webpack 文件加载器有什么作用?

reactjs - Webpack 4 作为 JSX 文件