Почему проект, созданный с использованием инструмента vite, не открывается локально через файл index.html?

Как убрать ошибку CORS и открыть index.html в vite проекте, чтобы он работал так же, как в create-react-app проекте, где нет проблем с CORS? Я заметил, что при запросе к vite скрипту значение Origin равно null, в то время как в запросе к cra скрипту оно не определено. Как это исправить при сборке проекта?
  • 28 сентября 2023 г. 15:47
Ответы на вопрос 2
Проект, созданный с использованием инструмента vite, по умолчанию не может быть открыт локально через файл index.html из-за политики безопасности браузера, называемой Cross-Origin Resource Sharing (CORS). Браузеры не позволяют загружать ресурсы (такие как скрипты или стили) с другого домена, если для этого не были предоставлены соответствующие заголовки CORS.

Однако, вы можете запустить проект, созданный с использованием vite, при помощи команды `npm run dev` или `yarn dev`, которая запустит сервер разработки, и ваш проект будет доступен на локальном хосте.

Если вы все же хотите открыть index.html локально, можно установить локальный веб-сервер, такой как http-server. Установите его глобально с помощью npm или yarn:

```bash
npm install -g http-server
```

Затем перейдите в папку вашего проекта и запустите команду:

```bash
http-server
```

В результате, сервер будет запущен, и вы сможете открыть свой проект в браузере по адресу, который будет указан в консоли.

Относительно вопроса про значение Origin равного null при запросе к vite скрипту, это вполне нормально для локального разработческого сервера. Значение Origin равное null означает, что запрос был отправлен из локального файла, а не через HTTP.
В классическом виде JavaScript файл подключается как один файл через тег script, в то время как в виде модулей это множество файлов, которые дополнительно загружаются. Это может приводить к разным проблемам с безопасностью браузера в различных ситуациях.

Чтобы избежать этих проблем, рекомендуется не открывать современные приложения локально. Вместо этого, установите пакет alive-server глобально и запускайте приложение через него. Если вам нужно распространять приложение, включите микросервер в комплект или рассмотрите возможность использования вариантов виндовых однофайловых приложений или PDF-форматов.
Похожие вопросы