Yarn в Chrome: Uncaught SyntaxError: Неожиданный токен ‹

У меня есть рабочий проект пряжи на локальной машине.

yarn start

Работает, дает веб-сайт, который отображается на локальном хосте.

У меня есть сервер, на котором запущен тот же проект. Однако я остановил работающий веб-сайт и перезапустил его с помощью следующих команд:

yarn install 
yarn run build
yarn run prod

И я получаю следующую ошибку при доступе к веб-сайту через хром (на рабочем сервере):

Ucaught SyntaxError: Unexpected token <

То, что я пытаюсь сделать, это диагностировать, где могут возникнуть проблемы. Обобщить:

1) проект запускается на локальной машине (mac osx) с yarn start

2) Размещаю проект на линуксовом ящике, устанавливаю, собираю и запускаю и вроде все отправляется в хром; однако хром выдает эту ошибку

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


person Chris    schedule 03.04.2018    source источник


Ответы (1)


Эта ошибка обычно возникает, когда вы получаете HTML-страницу для адреса <script> тега src.

Откройте URL-адреса сценариев каждый на отдельной вкладке (или проверьте вкладку сети инструментов разработчика), эти URL-адреса, вероятно, возвращают 404 (или какой-либо другой код ошибки) и страницу ошибки HTML.

Таким образом, ваш код пытается проанализировать эти страницы ошибок HTML как код JavaScript, что приводит к этой ошибке.

Он получает Uncaught SyntaxError: Unexpected token <, потому что пытается разобрать содержимое HTML (например, <html> ...) как код JavaScript.

Для демонстрации запустите приведенный ниже фрагмент кода и посмотрите на ошибку в консоли.

<script type=text/javascript src=https://stackoverflow.com></script>
Check the console: "Uncaught SyntaxError: Unexpected token <"

person acdcjunior    schedule 03.04.2018
comment
может ли это быть вызвано конфигурацией сервера? (например, nginx?) - person Chris; 03.04.2018
comment
Да, конечно. В основном это зависит от того, что возвращает HTML-страница с должным сценарием. Иногда это просто опечатка в пути или файл, который вы забыли загрузить. - person acdcjunior; 03.04.2018
comment
похоже, что он неправильно интерпретирует файл сборки js, как если бы это была таблица стилей. Может ли это быть проблемой конфигурации сборки? - person Chris; 03.04.2018
comment
Может быть. Что заставляет вас думать, что? - person acdcjunior; 03.04.2018
comment
Итак, я смотрю на файлы, которые вы упомянули. Первое, что загружается в браузер, это файл index. В индексе перечислены два файла сборки <link href="/build/app-buildid.css" rel="stylesheet"/> и <script src="/build/app-buildid.js" type="text/javascript"></script>, только хром, кажется, пытается неправильно интерпретировать файл .js, помечая его красной линией, когда я его проверяю. Под неожиданной ошибкой токена у меня есть Resource interpreted as Stylesheet but transferred with MIME type text/html: ".../build/app-buildid.css (это предупреждение). - person Chris; 03.04.2018
comment
между тем, локально, когда я проверяю ту же область, у меня просто есть файл app.js в папке сборки, и все работает как положено. Поэтому я предполагаю, что что-то не так в сборке (может быть, ошибка версии или что-то в этом роде?) - person Chris; 03.04.2018
comment
Возможно, файл обслуживается непосредственно из папки build, то есть префикс build не нужен. - person acdcjunior; 03.04.2018