Мой проект основан на создании-реагировать-приложение . npm start
или yarn start
по умолчанию приложение будет запущено на порту 3000, и нет никакой возможности указать порт в файле package.json.
Как я могу указать порт по своему выбору в этом случае? Я хочу запустить два проекта одновременно (для тестирования), один в порту, 3005
а другой -3006
next -p 3005
если кто-нибудь еще упадет сюда, ища то же самое.Ответы:
Если вы не хотите устанавливать переменную окружения , другой вариант - изменить
scripts
часть package.json из:в
Linux (протестирован на Ubuntu 14.04 / 16.04) и MacOS (протестирован @ aswin-s на MacOS Sierra 10.12.4):
или (может быть) более общее решение от @IsaacPak
Windows @JacobEnsor решение
lib Cross-env работает везде. См. Ответ Агуинальдо Поссатто для деталей
Обновление объясняется популярностью моего ответа: в настоящее время я предпочитаю использовать переменные среды, сохраненные в
.env
файле (полезно для хранения наборов переменных для разныхdeploy
конфигураций в удобной и удобочитаемой форме). Не забудьте добавить*.env
в ,.gitignore
если вы по- прежнему хранить свои секреты в.env
файлах. Вот объяснение того, почему использование переменных среды лучше в большинстве случаев. Вот объяснение того, почему хранение секретов в окружающей среде - плохая идея.источник
"start": "set PORT=3005 && react-scripts start"
"start": "export PORT=3006 react-scripts start"
работал для меня"start": "export PORT=3001 && react-scripts start"
Этот работал для меня в Ubuntu 16cross-env
, когда у вас есть несколько разработчиков, работающих на разных системах. Возможно, некоторые предпочитают MAC, а некоторые предпочитают Windows. Или, в другом сценарии, все разработчики используют Windows, но вы хотите добавить переменную среды, которая будет работать на вашем CI / CD-сервере с Ubuntu. Надеюсь, это поможет.Вот еще один способ выполнить эту задачу.
Создайте
.env
файл в корневом каталоге вашего проекта и укажите там номер порта. Подобно:источник
.env
. В их случае они рекомендуют использовать то,.env.local
что вы не должны проверять в системе контроля версий, чтобы вы могли безопасно проверить.env
в системе контроля версий. Так что тот же совет все еще применяется.Вы можете использовать cross-env для установки порта, и он будет работать на Windows, Linux и Mac.
тогда в package.json начальная ссылка может быть такой:
источник
Вы можете указать переменную среды с именем
PORT
для указания порта, на котором будет работать сервер.источник
"start": "set PORT=3005 react-scripts start"
просто установите порт, но не запускайте приложение"start": "set PORT=3005 && react-scripts start"
Для своих пользователей Windows я нашел способ изменить порт ReactJS для запуска на любом порту, который вы хотите. Перед запуском сервера перейдите на
В ней найдите строку ниже и измените номер порта на нужный порт
И тебе хорошо идти.
источник
node_modules
каталога, будут снесены, когда пакеты будут обновлены. Вероятно, лучше использовать один из других ответов.Кроме того, создайте файл с именем
.env
в главном каталогеpackage.json
и задайте дляPORT
переменной нужный номер порта.Например:
.env
источник
Просто обновите немного
webpack.config.js
:затем беги
npm start
снова.источник
В вашем
package.json
, перейдите к сценариям и используйте--port 4000
илиset PORT=4000
, как в примере ниже:package.json
(Windows):package.json
(Ubuntu):источник
Это работает как на Windows, так и на Linux
package.json
но вы, вероятно, предпочитаете создавать .env с PORT = 3006, написанным внутри него
источник
'PORT' is not recognized as an internal or external command, operable program or batch file.
Изменение в моем файле package.json
"start": "export PORT=3001 && react-scripts start"
тоже сработало, и я нахожусь на macOS 10.13.4источник
Подводя итог, у нас есть три подхода для достижения этой цели:
Самый переносимый будет последним подходом. Но, как упоминалось другим автором, добавьте .env в .gitignore, чтобы не загружать конфигурацию в общедоступный репозиторий.
Подробнее: эта статья
источник
вы можете найти конфигурацию порта по умолчанию при запуске вашего приложения
прокрутите вниз и измените порт на то, что вы хотите
надеюсь, это поможет вам;)
источник
yarn eject
сначала.Попробуй это:
источник
Было бы неплохо иметь возможность указать порт, отличный от
3000
параметра командной строки или переменной среды.Прямо сейчас процесс довольно сложный:
npm run eject
scripts/start.js
и найдите / замените3000
на любой порт, который вы хотите использоватьconfig/webpack.config.dev.js
и сделайте то же самоеnpm start
источник
В Windows это можно сделать двумя способами.
В «\ node_modules \ реагировать-скрипты \ scripts \ start.js» найдите «DEFAULT_PORT» и добавьте желаемый номер порта.
Например: const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 9999;
В package.json добавьте следующую строку. "start": "set PORT = 9999 && start-scripts start" Затем запустите приложение с помощью запуска NPM. Это запустит приложение в 9999 порту.
источник
Как насчет указания номера порта при вызове команды без необходимости что-либо менять в коде приложения или файлах среды? Таким образом, можно запускать и обслуживать одну и ту же кодовую базу из нескольких разных портов.
лайк:
$ export PORT=4000 && npm start
Вы можете поместить номер нужного вам порта вместо приведенного
4000
выше значения .источник
Если вы уже сделали это
npm run eject
, перейдите в scripts / start.js и измените порт вconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
(3000 в нашем случае) на любой порт, который вы хотите.источник
Изменение порта по умолчанию в React-App
Перейти к этой строке:
Измените номер порта на свой номер порта
Например:
Сохранить и выйти
источник
npm/yarn install
.node_modules
Следует избегать изменения файлов в .