#reactjs #deployment #external #internals #serve
#javascript #reactjs #развертывание #serve
Вопрос:
serve был установлен глобально с помощью npm install -g serve
команды и работает локально, но развертывание на сервере Windows выдает следующую ошибку:
«serve» не распознается как внутренняя или внешняя команда
Как исправить эту ошибку? Кроме того, для чего используется server.js
файл в react
проекте и как он помогает при развертывании?
служба npm установлена глобально пожалуйста, нажмите здесь, чтобы увидеть изображение
Ответ №1:
Я знаю, что запуск npx serve -s build
должен работать. У меня была та же проблема, что и у вас. Команда npx работает для меня. Если у вас проблемы с npx, проверьте свою версию nodejs. Я использую 10.16.2 (так что мы находимся на одной странице). https://www.npmjs.com/package/serve
Остальная часть вашего вопроса относится к остальной части вашей настройки. У меня нет server.js мой собственный файл (есть несколько node_module server.js файлы, это то, что вы имеете в виду)?
Насколько я понимаю, create-react-app, npm run start
позволит вам запускать ваше приложение локально. Мне это не нужно serve -s build
для этого.
Я использовал приложение amplify create react. Для приложения amplify я просто запускаю amplify publish
, и каталог сборки моего приложения отправляется в корзину S3 для меня. Если у вас нет такой конфигурации, и вы хотите получить быстрый и грязный ответ… просто возьмите содержимое вашего каталога сборки в вашем приложении react и поместите эти файлы на свой веб-сервер. Это должно обеспечить вам 90% пути (обратите внимание на страницу по умолчанию, которая отображается).
Комментарии:
1. почему npx устанавливается каждый раз, когда я запускаю
npx serve -s build
команду?2. это работает для меня и с npx, возможно, потому, что приложение создано с помощью команды npx
Ответ №2:
Обслуживание файлов React
Базовый пример:-
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(9000);
Для вашего базового пути в домене служит index.html вы извлекли из процесса сборки.
Если вам нужна дополнительная информация: —https://create-react-app.dev/docs/deployment