无法让 Next.js 使用自定义主机名

can't get Next.js to work with custom hostname

当我 运行 npm run dev -- -H 192.168.1.100 我得到这个错误

{ Error: listen EADDRNOTAVAIL: address not available 192.168.1.100:3000
    at Server.setupListenHandle [as _listen2] (net.js:1273:19)
    at listenInCluster (net.js:1338:12)
    at doListen (net.js:1471:7)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  code: 'EADDRNOTAVAIL',
  errno: 'EADDRNOTAVAIL',
  syscall: 'listen',
  address: '192.168.1.100',
  port: 3000 }

这是package.json

{
  "name": "Edel",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "next": "^7.0.2",
    "react": "^16.7.0",
    "react-dom": "^16.7.0"
  }
}

这里拒绝 192.168.1.100 的原因可能有很多,如果不了解您的设置就很难回答。最有可能的是,您的路由器为您的计算机分配了一个本地 IP,该 IP 不是特定的 192.168.1.100,而是 192.168.1.* 范围内的任何地址,这使得该地址在您的网络上不可用(在您的计算机上更是如此)。

然而,你在 "node.js" 而不是 "networking" 下问这个问题告诉我你真正的问题可能是 "how can I expose my local, development next.js server to internet somehow"。长而正确的答案有点复杂(可能涉及 "don't do this for production stuff" 的内容),但有一个开发目的的捷径: - 不要试图弄乱 next.js 的主机名设置,将其保留为默认值(可能是 0.0.0.0 或 localhost 或 127.0.0.1,端口为 3000) - 一旦您的本地服务器启动,请尝试 ngrok,这将无缝地(免费)创建一个通往您本地开发环境的隧道。

我的回答的第二部分可能完全错误,但在那种情况下,请稍微解释一下您要完成的任务。长话短说:您真正想要的是将 next.js 绑定到 192.168.x.x 地址的可能性很小。 :-)