npm http-server 在 ubuntu 20.04.3 LTS 上无法运行

npm http-server 在 ubuntu 20.04.3 LTS 上无法运行

我一直在使用http 服务器在 Windows 上已经存在多年了。今天我在 ubuntu 上安装了 http-server,但它不起作用。它的初始化方式与在 Windows 上完全相同。但是,当我导航到本地网站时,我收到错误(http://127.0.0.1:8080)。这在 Windows 上不会发生。有没有什么办法可以解决这个问题?

clayton@u20:~/hello-pwa-master$ http-server
Starting up http-server, serving ./

http-server version: 14.0.0

http-server settings: 
CORS: disabled
Cache: 3600 seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none

Available on:
  http://127.0.0.1:8080
  http://192.168.4.54:8080
Hit CTRL-C to stop the server

[Sun Dec 12 2021 22:12:15 GMT-0700 (Mountain Standard Time)]  "GET /" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
_http_outgoing.js:470
    throw new ERR_HTTP_HEADERS_SENT('set');
    ^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:470:11)
    at module.exports.ResponseStream.(anonymous function) [as setHeader] (/usr/local/lib/node_modules/http-server/node_modules/union/lib/response-stream.js:100:34)
    at Object.exports.(anonymous function) (/usr/local/lib/node_modules/http-server/lib/core/status-handlers.js:57:7)
    at Readable.stream.on (/usr/local/lib/node_modules/http-server/lib/core/index.js:339:22)
    at Readable.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)

答案1

好的,找到了解决方案。Ubuntu 20.04 LTS 出于某种奇怪的原因安装了节点 v10(当前 LTS 是 v16)。这个版本已经有好几年了。

我必须手动卸载节点,因为 apt uninstall 留下了许多孤立文件(在 /usr/local/bin、/usr/local/share、/usr/local/lib 和 ~ 中)。

完全删除 v10 后,我使用 curl 和 apt 下载并安装了 node v16。

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs

现在,安装 V16 后,http 服务器可以正常工作。

相关内容