【问题标题】:can't get Next.js to work with custom hostname无法让 Next.js 使用自定义主机名
【发布时间】:2018-12-27 00:21:33
【问题描述】:

当我运行 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"
  }
}

【问题讨论】:

    标签: node.js next.js


    【解决方案1】:

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

    但是,您在“node.js”而不是“networking”下提出这个问题的事实告诉我,您真正的问题可能是“我怎样才能以某种方式将我的本地开发 next.js 服务器公开到互联网”。长而正确的答案有点复杂(并且可能涉及“不要为生产内容这样做”的内容),但有一条用于开发目的的捷径: - 不要试图弄乱 next.js 的主机名设置,将其保留为默认值(可能是 0.0.0.0 或 localhost 或 127.0.0.1,端口为 3000) - 一旦您的本地服务器启动,请尝试ngrok,它将无缝(且免费)创建通往您本地开发环境的隧道。

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

    【讨论】:

    • 是的,我想从我的 android 访问我的 next.js 项目,所以这是一个网络问题,但感谢你我重新检查了我的本地 IP,发现它是 192.168.1.101 我没有任何知道为什么它在两个晚上就改变了
    • 因为您关闭了计算机(或离开了网络),然后您的路由器下次分配了不同的地址。您可以将路由器配置为始终为您的计算机分配相同的地址,否则使用 ngrok,它会更好,并且在您不在家时也可以使用!它还提供 https,这在某些情况下非常有用。
    猜你喜欢
    • 2021-06-05
    • 2021-01-11
    • 2021-04-25
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多