【问题标题】:I'm getting Uncaught SyntaxError: Unexpected token < in my bundle.js我收到 Uncaught SyntaxError: Unexpected token < in my bundle.js
【发布时间】:2019-03-31 13:20:39
【问题描述】:

我正在尝试为 React Web 应用程序设置样板。

但是,每次我导航到 http://localhost:8080/ 时,都会收到一条错误消息: Uncaught SyntaxError: Unexpected token &lt; 。在我的 bundle.js 中。

我不知道该怎么办!谢谢你的帮助。

这是我的一些文件:

/public/index.html

<!DOCTYPE html>
<html lang="en">

<head>

   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <title>New app</title>
   <link rel="stylesheet" href="/style.css" />
   <script src="./bundle.js" defer> .</script>
</head>

<body>
   <div id="app"></div>
</body>

</html>

/client/app.js

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
  <div>Hello, world!</div>,
  document.getElementById('app') 
);

webpack.config.js

module.exports = {
  entry: [
'@babel/polyfill', // enables async-await
'./client/app.js',
  ],
  mode: 'development',
  output: {
    path: __dirname,
    filename: `./public/bundle.js`,
  },
  devtool: 'source-maps',
  module: {
     rules: [
      {
        test: /\.js$/,
         exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
    ],
  },
};

package.json

{
  "name": "boilerplatelivmarx",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server",
    "start-dev": "webpack -w & nodemon server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-preset-env": "^1.7.0",
    "babel-preset-stage-2": "^6.24.1",
    "express": "^4.16.4",
    "path": "^0.12.7",
    "react": "^16.6.0",
    "react-dom": "^16.6.0",
    "react-router-dom": "^4.3.1"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-react": "^6.24.1",
    "webpack": "^4.23.1",
    "webpack-cli": "^3.1.2"
  }
}

谢谢!

【问题讨论】:

  • Unexpected token &lt; html 而不是 jsonjavascript 时遇到的错误。这可能是因为 Web 服务器返回错误页面,可能是由于权限不足或调用了错误/格式错误的 URL。使用浏览器网络选项卡查看检索到的实际结果值。
  • 你的捆绑文件中有什么?它是加载还是返回 404 或其他什么?也可能是 babel-loader 没有正确地改变你的 JSX。
  • 为什么所有文件的开头和结尾都有反引号?如果这些是作为代码降价的,那么缩进代码块时就不需要它们。

标签: javascript npm webpack boilerplate babel-polyfill


【解决方案1】:

你的问题错了jsx processing;

将反应预设添加到您的webpack.config.js

...
use: {
  loader: 'babel-loader',
  options: {
    presets: ['react']
  }
},
...

另外,您似乎尝试使用@babel/polyfill,但没有安装它。

运行:

npm i @babel/polyfill

而且您的&lt;script&gt; 文件中不需要在index.html 中添加点:

<!--                             ↓      -->
<script src="./bundle.js" defer> .</script>

之后,一切都必须构建:

然后运行:

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多