Я получаю Uncaught SyntaxError: неожиданный токен <в моем bundle.js - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь настроить шаблон для реагирования веб-приложений.

Однако каждый раз, когда я перехожу к http://localhost:8080/,, я получаю сообщение об ошибке: Uncaught SyntaxError: Unexpected token <. В моем bundle.js.

Понятия не имею, что делать! Спасибо за любую помощь.

Вот некоторые из моих файлов:

/ открытый / 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>

/ клиент / 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"
  }
}

Спасибо!

1 Ответ

0 голосов
/ 27 октября 2018

Ваша проблема не в порядке jsx обработка ;

Добавить предустановку реагирования на webpack.config.js:

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

Кроме того, похоже, что вы пытаетесь использовать @babel/polyfill, но не устанавливаете его.

Пробег:

npm i @babel/polyfill

И вам не нужна точка в <script> в вашем index.html файле:

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

После этого все должно строить:

enter image description here

И запустить:

enter image description here

...