MpVue Error: listen EADDRNOTAVAIL: address not available

问题记录:mpvue小程序启动报错的一次解决方式

补充:最后发现问题本质:之前在某次配置中,在一次host修改的过程中,将host文件变更为host.txt文件,导致host路由异常

由于放假返回老家,在启动小程序时,一直无法启动服务,报错:

> ywxApplet@2.0.0 dev /Users/bjcaywq/Documents/WorkSpace/wechat/ywxApplet-2.0.0
> node build/dev-server.js wx

events.js:298
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRNOTAVAIL: address not available 223.82.248.117:8086
    at Server.setupListenHandle [as _listen2] (net.js:1292:21)
    at listenInCluster (net.js:1357:12)
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1496:7)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:10)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1336:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'EADDRNOTAVAIL',
  errno: -49,
  syscall: 'listen',
  address: '223.82.248.117',
  port: 8086
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ywxApplet@2.0.0 dev: `node build/dev-server.js wx`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ywxApplet@2.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/bjcaywq/.npm/_logs/2020-02-01T08_48_42_465Z-debug.log

 

定位到错误的关键信息

Error: listen EADDRNOTAVAIL: address not available 223.82.248.117:8086

经过查看,我本机的ip是通过路由连接的,ip为:192.168.1.6

全局搜索223.82.248.117无果,223.82.248.117该ip通过百度搜索指向的是家里所在市的地址,怀疑是路由器配置存在某些问题,但是具体原因并不清楚。

因为dev环境一般会采用localhost,搜索'localhost',发现在build/dev-server.js文件中的代码段存在localhost


module.exports = new Promise((resolve, reject) => {
  portfinder.basePort = port
  portfinder.getPortPromise()
  .then(newPort => {
      if (port !== newPort) {
        console.log(`${port}端口被占用,开启新端口${newPort}`)
      }
      var server = app.listen(newPort, 'localhost')
      // for 小程序的文件保存机制
      require('webpack-dev-middleware-hard-disk')(compiler, {
        publicPath: webpackConfig.output.publicPath,
        quiet: true
      })

      resolve({
        ready: readyPromise,
        close: () => {
          server.close()
        }
      })
  }).catch(error => {
    console.log('没有找到空闲端口,请打开任务管理器杀死进程端口再试', error)
  })
})

尝试将localhost修改为本机ip(192.168.1.6),在此执行npm run dev 项目启动成功


      // var server = app.listen(newPort, 'localhost')
      var server = app.listen(newPort, '192.168.1.6')

localhost在解析的过程中变成别的ip的原因暂时不了解,先记录此次问题的解决方案。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值