簡體   English   中英

使用未指定的 $PORT 運行 NPM http-server 時出錯

[英]Error running NPM http-server with unspecified $PORT

在 NPM package.json 中,以下行應啟動本地服務器:

...
"start": "npx http-server .out -p $PORT",
...

我收到一個錯誤,我認為 $PORT 無法創建或找到它應該用於我的本地服務器的端口:

The value "{ port: true, host: '0.0.0.0' }" is invalid for option "options"

當我運行 NPM start 命令為服務器定義端口(或通過在 package.json 中手動定義端口來做同樣的事情)時,本地服務器運行得很好:

PORT=3000 npm run start

為什么 package.json 中的 $PORT 本身不能識別要使用的端口並啟動服務器? 我怎樣才能在我的本地機器上解決這個問題?

$PORT是一個環境變量。 如果您不設置它,它不起作用的原因是因為這就是代碼的編寫方式。 ¯\\ (ツ)

您可以通過更改開始條目來分配默認值:

"start": "npx http-server .out -p ${PORT:-0}",

我給了一個默認值0但你可以使用任何你想要的。 0似乎被http-server忽略,然后使用自己的默認值8080 (在 Node.js 核心中, 0通常意味着“給我一個可用的端口,我不在乎是哪個”,但在這里不是這樣。)

如果您只想自己解決這個問題並且不想修改package.json ,您可以在 shell rc 文件中設置$PATH 文件名和如何做會因外殼而有所不同,但典型的可能是bash ,在這種情況下,起始文件可能是~/.bashrc並且您需要添加類似export PORT=3000 您需要打開一個新的 shell 或運行.bashrc (同樣,因 shell 而異,可能是source ~/.bashrc或可能是. ~/.bashrc )。

暫無
暫無

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

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