簡體   English   中英

當我在 react app 上執行 npm start 時,不斷收到“?端口 3000 上已經有東西在運行”

[英]keep getting "? Something is already running on port 3000" when I do npm start on react app

當我啟動我的反應服務器時,當我的端口 3000 上絕對沒有運行時,我不斷收到“?端口 3000 上已經有東西在運行”消息

我試圖解決的問題:

  1. 重新啟動 macOS。
  2. 在 chrome 瀏覽器上檢查我的“http://localhost:3000”。 (無:無法訪問此站點)
  3. 轉到 chrome://serviceworker-internals 和 chrome://appcache-internals,搜索 localhost:3000(沒有找到)
  4. 我還嘗試了我在谷歌上找到的關於這個問題的幾乎所有命令行
  5. 我還創建了另一個 express.js 應用程序,它在端口 3000 上成功啟動,而 React 說有東西在 3000 上運行。在我的計算機上反應只是一直認為端口 3000 上有東西在運行。

終端

鉻合金

如果您是 Windows 用戶,您可以嘗試使用

npx kill-port 3000

在您的控制台中。 我遇到了同樣的問題,它對我有用。

不確定MAC。

打開cmd並寫這個

netstat -a -o -n

您將獲得活動連接列表,然后通過點擊找到3000

控制 + f

在此處輸入圖像描述

復制該端口的 PID 並點擊此命令

taskkill /F /PID PID_of_port

在此處輸入圖像描述

編輯本指南適用於 Windows。

從任務管理器中殺死Node.Js進程。

步驟 1:通過單擊 ctrl+shift+delete 打開任務管理器

第 2 步:打開進程選項卡

第 3 步:搜索 Node.JS 進程並右鍵單擊該進程,然后單擊結束任務

第4步:現在你可以重新開始了。

正如@khurram khan 建議的那樣,終止進程可能是您的最佳選擇,這對我來說在 linux 上工作:

$ lsof -i tcp:3000
$ kill -9 PID

第一個命令應該為您提供 PID 編號,以便在第二個命令中作為 PID 輸入。

我在 Mac 上遇到了這個問題,我通過運行解決了:

npx kill-port 3000

我已經堅持了幾個小時,最后我找到了解決方案 在 hosts 文件中映射到本地主機不正確,並且與端口沒有任何關系,例如

10.2.224.130    localhost 

只需將其更改回

127.0.0.1        localhost 

主機文件位置https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/

從后台進程中殺死 node.js。 這將解決問題。 或者,您可以重新啟動系統

對於窗口在 package.json "start" 中使用它:"set PORT=3006 && react-scripts start"

對於 Linux 和 MacOS "start": "PORT=3006 react-scripts start"

如果有人遇到此問題並且上述解決方案沒有幫助,請確保您的/etc/hosts具有:

127.0.0.1 localhost

出於某種原因,這已從我的主機文件中刪除,並且 CRA 用於檢查端口 ( detect-port-alt ) 的依賴項會檢查localhost:[PORT]以查看它是否可用。 如果它出錯,在檢查特定端口時總是會出現“Something is already running...”錯誤,但在使用隨機端口時不會出現錯誤(因為它是由依賴項選擇的)。

這很簡單。 您可以通過 2 個簡單的步驟來修復它。

  1. 如果有名稱為“PORT”的鍵/條目,請檢查您的環境變量。
  2. 如果找到刪除該條目或將其重命名為其他內容。

事實證明,其他一些程序正在使用該變量。 通常,當您啟動 react-scripts 時,它會查找具有該標題 PORT 的環境變量。

日期:2020 年 10 月 07 日星期六
視窗:微軟視窗 10 專業版 19041
節點:12.16.1
NPM :6.14.8

我的 Windows 機器上發生了類似的事情。 在 StackOverflow 和其他地方嘗試了很多這里建議的東西。

就我而言,我正在關注一個視頻課程,該課程建議在創建新的 React 應用程序時添加--script-version 1.1.5 (如下圖所示)。

create-react-app app-name --scripts-version 1.1.5

這是package.json腳本版本:
反應:17.0.1
反應 DOM :17.0.1
反應腳本:1.1.5

在運行命令npm start並輸入y以嘗試使用不同的端口后,終端將一直卡住,直到它被取消。

在此處輸入圖像描述

然后我創建了一個沒有--scripts-version 1.1.5的新 React 應用程序,在嘗試運行它之后,它仍然運行到Something is already running on port 3000但是在輸入y之后,該應用程序將在不同的地方運行沒有問題港口。

在此處輸入圖像描述

這是package.json腳本版本(成功運行時):
反應:17.0.1
反應DOM :17.0.1
反應腳本:4.0.0

從您在localhost:3000上看不到任何內容的原因開始,是因為該端口上必須運行適當的 webapp 或網站/服務器,但port:3000當前正在運行某個進程,而不是服務器/站點/應用程序。

順便說一句,根據您的操作系統類型,很容易檢查端口:3000上是否實際上存在進程。 對於 MacOS,打開終端並運行sudo lsof -i ':3000'將列出端口 3000 上的當前進程。請注意,我們需要以 sudo 或 root 身份運行命令

一旦您看到正在運行的進程,請記下 PID 並運行kill -9 {PID} ,這應該會終止帶有 PID 的進程(即端口:3000上的破壞性進程)。 現在執行npm start應該可以在localhost:3000上構建、編譯和提供您的應用程序

大多數情況下可能發生的是你有一個npm start運行,你要么中斷,要么在前台關閉。 在您的終端中執行fg將打開任何后台任務,因此如果這會打開一個npm start實例,則該進程會停止您的流程。 然后,您可以正確結束會話,確保端口:3000上的所有進程都被殺死。

快樂編碼

如果你在linux上,你可以試試

pkill -f node

終止進程

當任務在端口上運行時正確終止它時會發生錯誤。 兩個端口都可能發生此錯誤。 你的反應應用和你的節點服務器。

要解決此問題,您可以運行以下命令。

netstat -anp tcp | grep 3000

終端中的此命令將為您提供端口 3000 上的活動列表

npx kill-port 3000

此命令將殺死端口 3000 上所有正在運行的服務器。

現在,如果您的 Node 服務器也有同樣的問題。 您可以按照相同的步驟進行操作。

netstat -anp tcp | grep 5000

然后

npx kill-port 5000

您不需要第一個命令。 它只是列出端口上正在運行的活動。

只需更改任何其他端口號的端口號。

這是運行命令后得到的輸出。 我在 Windows 上使用 Git bash。

對我來說,這每次都有效(macOS): sudo kill -9 $(sudo lsof -t -i:3000)

簡單易行的解決方案

關閉當前終端並打開一個新終端。

如果您在 VS Code 中運行它,只需創建一個新終端並刪除舊終端。

React上 - 您可以通過以下方式運行已創建的 React 單頁應用程序 (SPA)

npm 啟動命令。

這可能會啟動您的本地托管開發服務器並在以下位置運行您的應用程序:

http://localhost:3000/相當於: 127.0.0.1 :3000 地址

127.0.0.1是默認的 localhost IP 號,而默認端口號由

create-react-app包是3000。

當得到: “Something is already running on port 3000 ”失敗錯誤消息時,您可能認為該端口被您機器上運行的另一個進程捕獲,但您會發現它被永久捕獲,就好像它在 0.0.0.0:3000 地址上運行一樣

解決方案:

在由create-react-app腳本創建的項目庫中,導航到:

node_modules/react-scripts/scripts/start.js

運行npm start命令時 - 正在調用並執行start.js腳本

在您的編輯器中的start.js 文件中找到上述行:

const HOST = process.env.HOST || '0.0.0.0';

並將其更改為:

const HOST = process.env.HOST || '127.0.0.1';

http://localhost:3000/http://127.0.0.1:3000保存並再次運行您的 Web 應用程序

 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM