«sudo npm start» не работает, но «npm start» работает - PullRequest
0 голосов
/ 04 ноября 2019

, поэтому я пытаюсь запустить свой сервер реагирования на порт 80, мне нужно использовать sudo, чтобы использовать PORT = 80

, но когда я пытаюсь запустить сервер с

sudo npm start

возвращает ошибку вроде этого:

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

Error: spawn cmd.exe ENOENT
    at _errnoException (util.js:1022:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! counter-app@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the counter-app@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
the log file

файл журнала:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using npm@6.12.1
3 info using node@v8.10.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle counter-app@0.1.0~prestart: counter-app@0.1.0
6 info lifecycle counter-app@0.1.0~start: counter-app@0.1.0
7 verbose lifecycle counter-app@0.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle counter-app@0.1.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/mnt/d/project/excercises/node/react$9 verbose lifecycle counter-app@0.1.0~start: CWD: /mnt/d/project/excercises/node/react/counter-app
10 silly lifecycle counter-app@0.1.0~start: Args: [ '-c', 'react-scripts start' ]
11 silly lifecycle counter-app@0.1.0~start: Returned: code: 1  signal: null
12 info lifecycle counter-app@0.1.0~start: Failed to exec start script
13 verbose stack Error: counter-app@0.1.0 start: `react-scripts start`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at EventEmitter.emit (events.js:214:7)
13 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:126:13)
13 verbose stack     at ChildProcess.emit (events.js:214:7)
13 verbose stack     at maybeClose (internal/child_process.js:925:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
14 verbose pkgid counter-app@0.1.0
15 verbose cwd /mnt/d/project/excercises/node/react/counter-app
16 verbose Linux 4.4.0-18362-Microsoft                                                                                                                          17 verbose argv "/usr/bin/node" "/usr/local/bin/npm" "start"                                                                                                    18 verbose node v8.10.0                                                                                                                                         19 verbose npm  v6.12.1
20 error code ELIFECYCLE
21 error errno 1
22 error counter-app@0.1.0 start: `react-scripts start`
22 error Exit status 1
23 error Failed at the counter-app@0.1.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

, но если я просто использую «npm start», он работает отлично, но я хочу использовать порт 80

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Вы уже пытались определить порт при запуске вашего сервера?

set PORT= 80 && node app.js

Вы также можете обновить свой package.json, чтобы просто использовать npm run start. package.json:

...
  "scripts": {
    "start": "set PORT= 80 && node app.js"
...
0 голосов
/ 04 ноября 2019

Возможно, вы ищете неправильное решение. Это плохая идея запускать npm start с sudo.

Вместо этого;Вы можете переслать порт 80 , чтобы реагировать на порт 3000

sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 3000

https://coderwall.com/p/plejka/forward-port-80-to-port-3000

это простой способ;но вы можете найти способ nginx, если это рабочий сервер

Удачи,

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