代码之家  ›  专栏  ›  技术社区  ›  evgeni fotia

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

  •  0
  • evgeni fotia  · 技术社区  · 6 年前

    当我奔跑 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"
      }
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   frsechet    6 年前

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

    但是,您在“node.js”下而不是“networking”下问的事实告诉我,您真正的问题可能是“我如何将本地的、开发的next.js服务器以某种方式公开到Internet上”。这个冗长、正确的答案有点复杂(可能涉及到“不要为生产产品做这件事”),但有一个用于开发目的的快捷方式: -不要试图搞乱next.js的主机名设置,将其保留为默认值(可能是0.0.0.0或localhost或127.0.0.1,端口为3000)。 -一旦本地服务器启动,请尝试 ngrok 这将无缝(免费)地为您的本地开发环境创建一个通道。

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