Как установить новый порт при обслуживании приложения через static-сервер в React JS - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть два приложения, которые я хочу запустить на двух разных портах. Я использую веб-пакет для упаковки всего моего статического содержимого в папку dist и запускаю static-сервер. Статический сервер по умолчанию работает на 9080, и первое приложение работает отлично. Тем не менее, когда я пытаюсь запустить второе приложение, я получаю сообщение об ошибке, что порт уже используется. Поэтому я устанавливаю новый PORT для другого приложения, чтобы оно работало на этом порту. Для этого я делаю что-то вроде ниже. В моем package.json-

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server --hot  --config webpack.prod.js",
    "build": "webpack --config webpack.prod.js",
    "start:prod": "set PORT=3006 && cd dist && static-server"
  }

Я не могу установить порт на 3006, и вместо этого, когда я пытаюсь запустить сервер состояния в папке списка, я получаю сообщение об ошибке -

* Shutting down server

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::9080
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at Server.setupListenHandle [as _listen2] (net.js:1351:14)
    at listenInCluster (net.js:1392:12)
    at Server.listen (net.js:1476:7)
    at StaticServer.start (/usr/local/lib/node_modules/static-server/server.js:114:58)
    at Object.<anonymous> (/usr/local/lib/node_modules/static-server/bin/static-server.js:48:8)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)

Я также пытался установить порт в моем webpack.config.js внутри сервера, но все еще получал ту же проблему. Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы должны предоставить порт вашему процессу в качестве аргумента, а не в качестве переменной среды, например:

static-server -p 8080

Некоторые примечания по настройке переменных среды

Если вы используете MacOS или Linux с операционной системой на основе UNIX, существует несколько способов установки переменных среды:

  1. Если вы хотите, чтобы переменная была установлена ​​только для последней команды, вы должен использовать это таким образом

    PORT=8080 npm run dev.

  2. Если вы хотите установить переменную для всего сеанса терминала, вы должны установить ее следующим образом

    $ set -a $ PORT=8080 & yarn run dev

  3. Вы можете добавить его в ~/.zshrc / ~/.bashrc ~/.profile, чтобы он всегда был в вашем терминале:

    export PORT=8080

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...