[英]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.