错误 运行 NPM http-server 未指定 $PORT

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 启动命令为服务器定义端口时(或通过在 package.json 中手动定义端口来执行相同操作)本地服务器 运行s就好了:

PORT=3000 npm run start

为什么 package.json 中的 $PORT 本身不能识别要使用的端口并启动服务器?我如何在我的本地机器上解决这个问题?

$PORT 是一个环境变量。如果您不设置它,它不起作用的原因是因为那是编写代码的方式。 ¯\(ツ)

您可以通过更改起始条目来分配默认值:

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

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

如果您只想自己解决这个问题并且不想修改 package.json,您可以在 shell rc 文件中设置 $PATH。文件名和操作方法会因 shell 而有所不同,但典型的文件名可能是 bash,在这种情况下,起始文件可能是 ~/.bashrc,您需要添加一个像 export PORT=3000 这样的行。您需要打开一个新的 shell 或 运行 和 .bashrc(同样,因 shell 而异,可能是 source ~/.bashrc 或可能是 . ~/.bashrc).