Пустая страница после запуска сборки в приложении create-реагировать

Пытаюсь развернуть приложение create-реагировать на netlify, однако моя сборка пустая страница. Я использую файл .env для загрузки ключа Firebase API, это проблема для сборки?

Даже когда я пытался открыть его локально на своем компьютере, его пустая страница и вывод ошибки в консоли: «Ошибка загрузки файла с исходным кодом: ///event-app/static/js/main.108757a0.js»

пакет.json: https://gist.github.com/Verthon/f82371ad2bb636b2e95c5b7697aa0bb5

➜  event-app git:(master) ✗ npm run build

> [email protected] build /home/jurr/Projects/event-app
> node scripts/build.js

Creating an optimized production build...
Compiled with warnings.

./src/components/Router.js
  Line 12:  'withFirebase' is defined but never used  no-unused-vars

./src/components/Firebase.js
  Line 21:  'Firebase' is defined but never used  no-unused-vars

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

File sizes after gzip:

  282.86 KB  build/static/js/main.108757a0.js
  3.1 KB     build/static/css/main.8e671453.css

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
47
0
77 423
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Ответ принят как подходящий

Я решил проблему, установив

"homepage": "."

в package.json согласно этот документ

Я получаю пустую страницу даже после добавления "." в качестве домашней страницы. Любые подсказки о том, что еще может быть не так

mvinayakam 05.08.2020 17:28

Да, см. мой ответ ниже.

Zach Posten 06.08.2020 22:54

В моем случае решение заключалось в том, чтобы добавить параметр onload к загружаемым скриптам Google API, как в документы клиента google api, упомянутом здесь.

Charney Kaye 27.11.2020 06:24

это решило мою проблему, но как я могу разместить свое приложение на github, если я задаю своей домашней странице значение, например "." ?

Sachin Rajput 27.11.2021 05:54

Добавлять

"homepage": ".",

в вашем package.json, затем снова постройте.

Итак, проблема заключается в кэшировании вашего приложения в браузере.

Я решил эту проблему с serviceWorker() в create-react-app.

Вот решение: просто добавьте это в свой файл index.js и удалите реестр сервисного работника.

import { unregister } from './registerServiceWorker';
unregister();
  1. Беги npm run eject

  2. Отредактируйте файл webpack.config в папке config

  3. Найдите путь с "static/" или "static/js/" или "static/css/" в файле и удалите такой путь

  4. Создайте свой проект снова

Эта работа для меня. надеюсь, это сработает и для вас.

Как сказал @Вертон, добавив "homepage": ".", в файл package.json, в высший уровень вот так:

{
     "name": "myApp",
     "homepage": ".",
     // all other package.json stuff...
}

Вы спасли меня здесь, спасибо, сэр! Интересно, почему это нигде не отражено в документации, если только я не проглядел?

twknab 29.07.2021 10:30

Если вы используете react-router и пытаетесь открыть index.html прямо в браузере (или используете электрон, который, по сути, и делает это), в дополнение к настройке homepage, как предлагали другие, замените BrowserRouter на HashRouter.


Я пытался создать электронное приложение, используя приложение create-реагировать. При запуске в разработке все было нормально, но когда я создал CRA, а затем указал электронному приложению на файл index.html, я получил пустую страницу.

Я обнаружил, что это точно так же, как открытие файла index.html непосредственно в браузере. Все говорят "установить homepage в package.json", но у меня это уже было. И что теперь!?

В конце концов я понял, что проблема была react-router. Я использовал BrowserRouter. Переход на HashRouter решил проблему для меня.

Блин, это спасло мне жизнь

Ryan 28.08.2020 20:45

Чувак, мне тоже жизнь спас. у вас есть идеи, почему HashRouter работает?

vexingCoder 29.09.2020 23:09
HashRouter работает, потому что ничего после «#» в URL-адресе не отправляется на «сервер». Эта часть URL-адреса интерпретируется только реагирующим маршрутизатором.
Zach Posten 30.09.2020 21:31

Это очень эффективное решение. Спасибо.

Emre Sert 07.10.2020 10:55

спасибо за Ваш ответ. это работа, но после того, как я попытался щелкнуть на другую страницу, не могу перенаправить.

naufal syarifuddin 22.10.2020 19:17

Это решило проблему и для меня, большое спасибо! Но знаем ли мы, почему? Это известная ошибка?

Márk Farkas 04.12.2020 17:36

Решено и для меня! Спасибо. Интересно, почему это не работает с pushstate-сервером.

Alqio 31.01.2021 11:34

Спасибо, что сэкономили мое время.

Thalinda Bandara 02.06.2021 16:45
HashRouter работал отлично, с react-router-dom.
Saurabh Kiri 05.06.2021 19:14

ЭТО! Спасибо за спасение жизней, чувак. Есть ли у нас какая-либо документация, где это подробно описано?

Abhishek Saini 19.07.2021 12:51

Это доказательство того, что не все герои носят плащи. А если кому интересно подробнее про HashRouter, смотрите stackoverflow.com/a/51976069/9231525

Jakov Gl. 23.08.2021 14:43

Использование HashRouter вместо BrowserRouter устранило проблему для меня при запуске приложения с префиксом, таким как www.site.com/appprefix/ и PUBLIC_URL=/appprefix/, установленным во время сборки. Однако, BrowserRouter тоже нормально работает, если явно задать basename=process.env.PUBLIC_URL

mivilar 17.11.2021 16:15

Можем ли мы использовать это для нашей производственной среды, такой как AWS ec2 и nginx?

MD SHAYON 29.01.2022 02:45

Я пытался открыть приложение после сборки, дважды щелкнув index.html, и это тоже не сработало, я получил пустую страницу, но если встроенные файлы запускаются в серверной среде, работает. https://create-react-app.dev/docs/deployment/

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

Я ненавижу, что это была моя ошибка. Интересно, есть ли учебник, в котором говорится «например: общедоступный» для инструкций по созданию папки, которым мы оба следовали.

Dustin English 17.02.2021 04:17

Это вполне может быть. Но в моем случае это был просто кратковременный сбой мозговой активности... :-)

Oystein 17.02.2021 09:06

У меня был комментарий внутри моего метода return, и это вызвало у меня проблему.

Если сообщение об ошибке в консоли браузера

Minified React error #152;

Тогда удаление любого комментария внутри метода return может решить вашу проблему, как и мою.

Для меня проблема заключалась в том, что встроенный сценарий выполнения не запускался, так как я получал сообщение об ошибке:

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-5='), or a nonce ('nonce-...') is required to enable inline execution.

Это было исправлено путем добавления переменной INLINE_RUNTIME_CHUNK=false в скрипт сборки.

"build": "INLINE_RUNTIME_CHUNK=false react-scripts build",

Это связано с Политика безопасности контента браузеров: «Браузер, совместимый с CSP, будет выполнять только сценарии, загруженные в исходные файлы, полученные из этих разрешенных доменов, игнорируя все остальные сценарии (включая встроенные сценарии и HTML-атрибуты обработки событий)».

Я столкнулся с подобной проблемой. Но если вы будете правильно следовать React-развертывание, вы поймете, что есть "домашняя страница":"." // Пользователь "." если вы развертываете на своем локальном компьютере, но на сервере, размещенном где-то, вы можете использовать свой домен или IP-адрес в поле домашней страницы.

{
  "homepage":"https://example.com"
}

Другие вопросы по теме