VueJS:错误:侦听EADDRNOTAVAIL:地址不可用



我是JS的新手,最近我用vue CLI 2学习了vue.JS,但现在我想安装新版本的vue CLI 4.3.0,我已经在做一步一步的教程来安装它,但当我运行$npm run serve时,它会给我这样的错误。根据类似的StackOverflow问题,我猜这是关于IP地址的(请听Node.js中的EADDRNOTAVAIL错误(,但我真的不知道如何实现它

> vue-cli-new@0.1.0 serve /Users/arul/selfLearner/Vuejs_learn/vue-cli3-tutorial/vue-cli-new
> vue-cli-service serve
INFO  Starting development server... 11% building 13/15 modules 2 active ...vue-cli-new/node_modules/webpack-dev-server/client/utils/reloadApp.jsevents.js:292
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL: address not available 36.86.63.182:8080
at Server.setupListenHandle [as _listen2] (net.js:1296:21)
at listenInCluster (net.js:1361:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:71:10) Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1340:8)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {   code: 'EADDRNOTAVAIL',   errno: -49,   syscall: 'listen',   address: '36.86.63.182',   port: 8080 } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! vue-cli-new@0.1.0 serve: `vue-cli-service serve` npm ERR! Exit status 1 npm ERR!  npm ERR! Failed at the vue-cli-new@0.1.0 serve 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/arul/.npm/_logs/2020-04-07T10_46_15_552Z-debug.log

这是日志文件

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/usr/local/Cellar/node/13.12.0/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'run',
1 verbose cli   'serve'
1 verbose cli ]
2 info using npm@6.14.4
3 info using node@v13.12.0
4 verbose run-script [ 'preserve', 'serve', 'postserve' ]
5 info lifecycle vue-cli-new@0.1.0~preserve: vue-cli-new@0.1.0
6 info lifecycle vue-cli-new@0.1.0~serve: vue-cli-new@0.1.0
7 verbose lifecycle vue-cli-new@0.1.0~serve: unsafe-perm in lifecycle true
8 verbose lifecycle vue-cli-new@0.1.0~serve: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/arul/selfLearner/Vuejs_learn/vue-cli3-tutorial/vue-cli-new/node_modules/.bin:/Users/arul/google-cloud-sdk/bin:/usr/local/bin:/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/home/username/bin:/usr/local/homebrew:/Users/arul/development/flutter/bin
9 verbose lifecycle vue-cli-new@0.1.0~serve: CWD: /Users/arul/selfLearner/Vuejs_learn/vue-cli3-tutorial/vue-cli-new
10 silly lifecycle vue-cli-new@0.1.0~serve: Args: [ '-c', 'vue-cli-service serve' ]
11 silly lifecycle vue-cli-new@0.1.0~serve: Returned: code: 1  signal: null
12 info lifecycle vue-cli-new@0.1.0~serve: Failed to exec serve script
13 verbose stack Error: vue-cli-new@0.1.0 serve: `vue-cli-service serve`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315:20)
13 verbose stack     at maybeClose (internal/child_process.js:1026:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid vue-cli-new@0.1.0
15 verbose cwd /Users/arul/selfLearner/Vuejs_learn/vue-cli3-tutorial/vue-cli-new
16 verbose Darwin 19.2.0
17 verbose argv "/usr/local/Cellar/node/13.12.0/bin/node" "/usr/local/bin/npm" "run" "serve"
18 verbose node v13.12.0
19 verbose npm  v6.14.4
20 error code ELIFECYCLE

EADDRNOTAVAIL通过操作系统来自计算机的网络代码。

当它来自listen()调用时,意味着您试图启动一个服务器(在您的情况下是nodejs web服务器(,以在不存在的Internet协议(IP(地址上为传入请求提供服务在您的情况下,坏地址是36.86.63.182。端口8080是正确的。

如果您使用的是mac或Linux设备,则可以发出命令ifconfig。它将显示有关网络接口的混乱信息。要只提取Internet协议地址,请使用此

ifconfig | grep "inet "

在Windows上,它是

ipconfig | findstr IPv4

我敢打赌,在那个列表中没有地址36.86.63.182。因此,作为Vue教程一部分的nodejs服务器正在尝试监听他人的IP地址。你不能那样做™。当你尝试时,你会得到EADDRNOTAVAIL

在这种情况下,您想要的是侦听地址0.0.0.0,这意味着"这台机器上的所有地址"。或者,如果不能侦听,则侦听地址127.0.0.1,这意味着您机器的localhost环回地址。

问题是"为什么它在听错误的地址?"从这里很难判断。

你的vue服务器配置错误了吗?查找

如果可能的话,最简单的尝试就是重新启动你的机器。也许自从你上次启动它以来,一些古怪的配置已经悄悄出现了???

接下来要尝试的是:查找一个环境变量,可能名为HOST,它被设置为伪造的IP地址。在Mac/Linux 上

env | grep "36.86.63.182"

在Windows 上

set | findstr "36.86.63.182"

如果你发现一个有问题的环境变量,你可以在当前会话中删除它,方法是说Linux/mac(给出你找到的环境变量的名称,这里我用HOST作为的例子

unset HOST

Windows

set HOST=

那么事情应该会成功的。

至于永久消除伪造的环境变量,请查找或寻求帮助。

最新更新