为什么npm start给我有关端口的错误?

时间:2018-09-29 06:26:48

标签: react-native npm

我不知道为什么在输入“ npm start”后它给我错误。我正在尝试使用相同的WIFI打开我的React Native项目。我认为这与港口有关。

这是错误:

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

Error: listen EADDRINUSE :::8081
    at Server.setupListenHandle [as _listen2] (net.js:1360:14)
    at listenInCluster (net.js:1401:12)
    at Server.listen (net.js:1485:7)
    at D:\rnprojects\testproject\node_modules\metro\src\index.js:156:18
    at new Promise (<anonymous>)
    at Object.<anonymous> 
(D:\rnprojects\testproject\node_modules\metro\src\index.js:155:12)
    at Generator.next (<anonymous>)
at step (D:\rnprojects\testproject\node_modules\metro\src\index.js:47:262)
at D:\rnprojects\testproject\node_modules\metro\src\index.js:47:422
at <anonymous>
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! testproject@0.0.1 start: `node node_modules/react-native/local- 
cli/cli.js start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the testproject@0.0.1 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:
npm ERR!     C:\Users\ASUS\AppData\Roaming\npm-cache\_logs\2018-09- 
29T06_20_58_251Z-debug.log

npm start之后: enter image description here

6 个答案:

答案 0 :(得分:12)

端口可能已在使用中。我第一次运行 react-native run-android 然后运行 npm start 时,也会遇到类似的问题。我这样解决: 首先,获取在端口8081中运行的进程的ID:

sudo lsof -i :8081

然后杀死它:

kill -9 ID_SHOWN_FROM_PREVIOUS_CMD 

ID_SHOWN_FROM_PREVIOUS_CMD将类似于25534 因此,在此之后,首先运行 npm start ,然后运行 react-native run-android

答案 1 :(得分:0)

就我而言,运行在8081上的进程是必需的,无法杀死。 所以我改变了本地应用程序本身的端口 设置另一个端口

  

react-native start --port = 8088#您喜欢的任何其他端口

然后将project.pbxproj中的所有8081实例更改为8088 即

  

node_modules / react-native / React / React.xcodeproj / project.pbxproj

也可以在Xcode中打开项目,搜索8081并替换为8088。

再次重建项目。 这就是我通过问题解决的方式。

答案 2 :(得分:0)

找到端口:

netstat -a -n -o | find "8081"

您需要找到pid。第二步,杀死它:

taskkill /PID 5952 /F

在这种情况下,pid为“ 5952”。

答案 3 :(得分:0)

在终端中运行命令:

lsof -n -i4TCP:8081 | sed '1 d' | awk '{print $2}' | xargs kill -9

答案 4 :(得分:0)

lsof -i :PORT_NUMBER //To find the PID

kill -9 PID

npm start

答案 5 :(得分:0)

On a mac/ubuntu, run the following command to find id of the process which is using port 8081

 **sudo lsof -i :8081**   

执行此操作后,此处获得一个PID。只需复制并粘贴下一个步骤

Then run the following to terminate process:

 **kill -9 23583**

example: PID = 23583

仅此而已。享受您的编码