React / Node Uncaught SyntaxError: Неожиданный токен < - PullRequest
0 голосов
/ 18 марта 2019

Я перепробовал все, но я немного растерялся, когда мне нужно разобраться с этой проблемой.

Что происходит, когда вы создаете приложение реагирования и развертываете его (используя узел / экспресс),это работает отлично.Однако, если вы соберете снова и перенесете папку сборки на сервер узла, это выдаст мне синтаксическую ошибку.Это происходит только в том случае, если ваш браузер уже однажды открыл приложение.

Я провел исследование, и люди говорили, что браузер пытается загрузить старые статические файлы, и именно поэтому это происходит.Однако ни одно из их решений не сработало из того, что я пробовал.

Я был бы очень признателен за помощь в решении этой проблемы.

Приветствия

enter image description here enter image description here

Обновление

Как предложил Давин.Я посмотрел в Chrome Devtools и вот что я получил в ответ

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

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <script src="/js/modernizr.js"></script>
    <link rel="manifest" href="/manifest.json">
    <link rel="shortcut icon" href="/favicon.ico">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
        integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
        crossorigin="anonymous"></script>
    <link rel="stylesheet" href="/css/mega-nav.css">
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.4.1/css/swiper.min.css">
    <title>Q Parts</title>
    <link href="/static/css/style.css" rel="stylesheet">
    <link href="/static/css/main.css" rel="stylesheet">
    <link href="/static/css/main-ar.css" rel="stylesheet">
</head>

<body><noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <script src="/js/jquery-3.3.1.min.js"></script>
    <script src="https://code.jquery.com/jquery-migrate-3.0.1.min.js"></script>
    <script src="/js/jquery.mobile.custom.min.js"></script>
    <script src="/js/popper.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/main.js"></script>
    <script>$(document).ready(function () { $(".has-children").hover(function () { $(".overlay-lg").addClass("is-visible") }, function () { $(".overlay-lg").removeClass("is-visible") }), $(".cd-primary-nav li").click(function () { $(".cd-primary-nav").animate({ scrollTop: $(".nav-is-visible").offset().top }, "200") }) })</script>
    <script type="text/javascript" src="/static/js/main.957b5c6e.js"></script>
</body>

</html>

enter image description here

Ответы [ 3 ]

1 голос
/ 18 марта 2019

Эта ошибка почти всегда означает, что некоторый код пытается JSON.parse что-то, что является HTML-документом.

Очень сложно узнать, что происходит на основе предоставленной вами информации.

Я бы посоветовал взглянуть на вкладку Chrome devtools Network и посмотреть, какой вызов сервера вызывает ошибку. Посмотрите на ответ, это, вероятно, HTML, когда ожидается js.

0 голосов
/ 19 марта 2019

Спасибо всем за помощь в решении этой проблемы.Я принял предложение @ Davin и открыл инструменты разработки (в chrome).Я гуглил ту же проблему, но добавил _sw-precache.В конце концов, я обнаружил, что люди сталкиваются с той же проблемой, поэтому вот что они предложили:

Просто добавьте <base href="/" /> в мой index.html исправил это для меня.

https://github.com/webpack/webpack/issues/2882#issuecomment-280906981

0 голосов
/ 18 марта 2019

Я вижу две вещи, которые могут быть проблемой.Во-первых, я вижу из вашего комментария, что код для обработки ответа: res.sendFile(${__dirname}/${buildPath}/index.html Я думаю, что вы на самом деле хотите

res.sendFile(`${__dirname}/${buildPath}/index.html` // Note the backticks

Если это не так, я думаю, что вы обслуживаете тот же HTML-файл.на запросы ваших файлов .js, .css и т. д.Используете ли вы какой-либо статический файл промежуточного программного обеспечения?Если вы используете его, он будет обслуживать реальный файл, если он существует на сервере, и будет обслуживать ваш файл index.html для всего остального.

Чтобы проверить, вы можете открыть инструменты разработчика Chrome и посмотреть запросдля вашего файла javascript (main.js или как там у вас есть).Правильный ли это JavaScript или HTML из index.html?Если это HTML, вам нужно посмотреть на это, если вы используете экспресс-сервер: https://expressjs.com/en/starter/static-files.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...