Webpack 4基础React js入门示例遇到“模块解析失败:意外的标记”错误。

3

更新:

代码已推送到https://github.com/gsouvik/react_spa_experiment

初始帖子:

我知道有成百上千个主题,有些在webpack配置中有拼写错误,有些错误地使用了加载器,有些得到了解决,但有些仍然未解决。但是在尝试多次后,我仍然无法使用Webpack 4和React js创建一个简单的“Hello World”。

我所做的事情

我一行一行地按照这个视频教程进行操作: 从零开始学习React & Webpack 4

我的package.json

{
  "name": "my_react_experiment_2",
  "version": "1.0.0",
  "description": "Basic react with webpack ",
  "main": "index.js",
  "scripts": {
    "dev": "webpack-dev-server --mode development --hot",
    "build": "webpack --mode production"
  },
  "author": "Souvik Ghosh",
  "license": "ISC",
  "dependencies": {
    "react": "^16.4.2",
    "react-dom": "^16.4.2"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "html-webpack-plugin": "^3.2.0",
    "webpack": "^4.17.1",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  }
}

我的webpack.config.js文件

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.export = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, '/build'),
    filename: 'index_bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/templates/index.html'
    })
  ]
};

我的 .babelrc

{
  "presets": ["env", "react"]
}

我的目录结构

enter image description here

期望的行为

我启动开发服务器 npm run dev,希望看到我的 React js 页面显示 "My first React Webpack project" (来自组件 /components/App.js)。

实际的行为

ERROR in ./src/index.js 5:16 Module parse failed: Unexpected token (5:16) You may need an appropriate loader to handle this file type. | import App from "./components/App"; | ReactDOM.render(, document.getElementById('root')); | //ReactDOM.render('Hello User ', document.getElementById('root')); @ multi (webpack)-dev-server/client?http://localhost:8080 (webpack)/hot/dev-server.js ./src main2

如有需要,我可以通过 git 仓库分享代码库。非常感谢您的帮助。


请问你能分享一下代码库吗? - Meet Zaveri
如果您想要更新,可以查看我的webpack配置。https://github.com/meetzaveri/react-doughnut/blob/master/webpack.config.js - Meet Zaveri
也许你需要解决以下问题:{ modules: [ path.resolve("./src"), path.resolve("./node_modules") ], extensions: [".js"] } - Hemadri Dasari
@MeetZaveri 我已经更新了原始帖子中的Git仓库。谢谢。 - Souvik Ghosh
1个回答

3
问题在于您的webpack配置文件中有一个错别字。您使用了module.export,这是不正确的。正确应该是module.exports。
工作示例:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, '/build'),
    filename: 'index_bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/templates/index.html'
    })
  ]
};

感谢您抽出时间并回答。我已经更改了我的webpack配置以匹配您在答案中给出的配置,但不幸的是它并没有解决问题。我已经更新了原始帖子,并提供了一个git仓库。您可以将其克隆到本地并尝试运行以查看是否成功。先运行npm install,然后运行npm run dev。再次感谢您的帮助。 - Souvik Ghosh
太棒了,这解决了我的问题。我怎么会错过那个呢。非常感谢。 - Souvik Ghosh
即使我错过了找到它的机会,没关系 :) 如果我的回答有助于解决您的问题,请接受并点赞。 - Hemadri Dasari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接