Node.js Vue/Node尝试将应用程序服务于目录名,而不是本地主机
我已经构建了一段时间的Vue应用程序,在使用“npm运行服务”进行开发时从未遇到过问题。发生了一些事情,使得localhost不再是承载dev实例的默认方式Node.js Vue/Node尝试将应用程序服务于目录名,而不是本地主机,node.js,vue.js,npm,Node.js,Vue.js,Npm,我已经构建了一段时间的Vue应用程序,在使用“npm运行服务”进行开发时从未遇到过问题。发生了一些事情,使得localhost不再是承载dev实例的默认方式 App running at: - Local: http://Kyles-MacBook-Pro.local:8080/ - Network: http://Kyles-MacBook-Pro.local:8080/ Note that the development build is not optimized.
App running at:
- Local: http://Kyles-MacBook-Pro.local:8080/
- Network: http://Kyles-MacBook-Pro.local:8080/
Note that the development build is not optimized.
To create a production build, run npm run build.
这不同于通常的本地主机:8080,对于网络主机,“IP”:8080
因为它没有指向本地主机,所以失败了
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND Kyles-MacBook-Pro.local
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
Emitted 'error' event at:
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1457:12)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! test-test@0.1.0 serve: `vue-cli-service serve`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the test-test@0.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
根据我所做的研究,如果我在本地主机上监听,“getaddrinfo ENOTFOUND”错误将得到解决
我不知道有什么可以改变,因为它是工作2天前,我没有做任何改变,直到尝试再次运行它看到这个错误
我已卸载/重新安装vue、npm和节点。我的主机文件看起来像
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
我不知道我的节点文件或vue中是否有更改,但如果有人知道我如何返回指向localhost,我将不胜感激
编辑
我没有vue.config.js文件
这是我的package.json
"name": "test-test",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.6.4",
"vue": "^2.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.2.0",
"@vue/cli-plugin-eslint": "~4.2.0",
"@vue/cli-service": "~4.2.0",
"babel-eslint": "^10.0.3",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.1.2",
"vue-template-compiler": "^2.6.11",
"webpack-cli": "^3.3.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
编辑2
在创建vue.config.js文件并输入此文件后,它
module.exports = {
devServer: {
host: '127.0.0.1',
port: 8080,
public: 'localhost:8080',
}
}
我在尝试启动项目时的输出现在是
App running at:
- Local: http://Kyles-MacBook-Pro.local:8080/
- Network: http://localhost:8080/
但由于“本地:”是一个糟糕的主机,它仍然会出错。我试图ping它以防万一,但它确实不能解决为ping。
我不明白module.exports文件如何不覆盖默认主机,必须有另一个具有更高优先级设置的文件
最终编辑
这不是最好的解决方案,而是增加
127.0.0.1 Kyles-MacBook-Pro.local
我的etc/host文件现在允许我在本地运行应用程序。
在其他地方还有一个更大的问题需要解决,那就是将Local设置为远离localhost,但现在这个解决方法就可以了。您是否使用
vue cli
创建应用程序?你能展示你的package.json
吗?另外,你的项目根目录下有一个名为vue.config.js
的文件吗?如果是的话,你能发布它的内容吗?@MattOestreich谢谢你的回复,我已经更新了帖子。此错误发生在我计算机上的所有vue项目上,但如果有人从github中提取代码,它将正确编译并服务于其计算机上的本地主机。由于这在我的系统上的所有vue项目中都是通用的,所以我认为这更可能是节点问题或vue设置问题,不一定锁定到特定的项目文件夹中。在您的计算机上,如果从终端运行ping localhost,会发生什么?成功ping localhost(127.0.0.1):56数据字节127.0.0.1中的64字节:icmp_seq=0 ttl=64时间=0.032毫秒