webpack-dev-server 找不到本地主机
webpack-dev-server can't find localhost
我正在尝试使用 webpack 开始使用 React,但是当我尝试时 运行 一直出错设置 webpack-dev-server。我运行
npm install webpack-dev-server
接着是
webpack-dev-server
和命令行returns如下:
events.js:154
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:26:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26)
关于这里发生的事情有什么线索吗?
我真的不知道 webpack 如何工作来尝试搜索问题的根源,但我也一直在使用 PHP 在端口 80 和 MAMP 开发一个网站,我不知道这是否是问题的一部分?
该错误最常见的原因是您已经有其他东西在使用该端口。尝试在另一个端口上启动它。
webpack-dev-server --port 3001
已解决,原来我的主机文件(在 mac 上的 /etc/hosts 下找到)缺少一行,因此 webpack 找不到本地主机。我在 these instructions 之后将其恢复为默认值,现在可以使用了!
同时检查 /etc/hosts 是否也有 127.0.0.1 指向本地主机。
也遇到了同样的错误,但没有解决。
就我而言,似乎我不小心 "corrupted" /etc/hosts
文件能够在没有 sudo
许可的情况下写入它。
线索是当我 cat /etc/hosts
输出是一行混乱的时候。我用@lizzie-cd link 删除并重新创建了 sudo
文件,然后一切恢复正常
即使在恢复主机文件并尝试使用不同的端口后,对我也不起作用。我让它工作的方法是在启动服务器时提供一个自定义主机(127.0.0.1)和端口(3001 或任何其他可用的):
webpack-dev-server --host 127.0.0.1 --port 3001
确保您的 /etc/hosts 文件包含本地主机。
打开/etc/hosts
$ sudo vi /etc/hosts
如果遗漏,请复制并粘贴:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
在最新的 mac 和 linux os 中,webpack 开发服务器仅在添加
host: "127.0.0.1"
在devServer
里面在webpack.config
主机文件没问题。进入 web/dev.js 并将文件更新为以下内容为我解决了这个问题。仍然不确定为什么。
const webpack = require('webpack');
const merge = require('webpack-merge');
const path = require('path');
const { buildConfig, APP_PATH, WEB_PATH } = require('./common');
module.exports = (env, argv) => (
merge(buildConfig(env, argv), {
entry: path.join(WEB_PATH, 'index.hmr.js'),
devtool: 'inline-source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
devServer: {
contentBase: APP_PATH,
openPage: '',
inline: true,
stats: 'minimal',
open: true,
port: 3001,
hot: true,
host: "127.0.0.1"
},
})
);
我正在尝试使用 webpack 开始使用 React,但是当我尝试时 运行 一直出错设置 webpack-dev-server。我运行
npm install webpack-dev-server
接着是
webpack-dev-server
和命令行returns如下:
events.js:154
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:26:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26)
关于这里发生的事情有什么线索吗?
我真的不知道 webpack 如何工作来尝试搜索问题的根源,但我也一直在使用 PHP 在端口 80 和 MAMP 开发一个网站,我不知道这是否是问题的一部分?
该错误最常见的原因是您已经有其他东西在使用该端口。尝试在另一个端口上启动它。
webpack-dev-server --port 3001
已解决,原来我的主机文件(在 mac 上的 /etc/hosts 下找到)缺少一行,因此 webpack 找不到本地主机。我在 these instructions 之后将其恢复为默认值,现在可以使用了!
同时检查 /etc/hosts 是否也有 127.0.0.1 指向本地主机。
也遇到了同样的错误,但没有解决。
就我而言,似乎我不小心 "corrupted" /etc/hosts
文件能够在没有 sudo
许可的情况下写入它。
线索是当我 cat /etc/hosts
输出是一行混乱的时候。我用@lizzie-cd link 删除并重新创建了 sudo
文件,然后一切恢复正常
即使在恢复主机文件并尝试使用不同的端口后,对我也不起作用。我让它工作的方法是在启动服务器时提供一个自定义主机(127.0.0.1)和端口(3001 或任何其他可用的):
webpack-dev-server --host 127.0.0.1 --port 3001
确保您的 /etc/hosts 文件包含本地主机。
打开/etc/hosts
$ sudo vi /etc/hosts
如果遗漏,请复制并粘贴:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
在最新的 mac 和 linux os 中,webpack 开发服务器仅在添加
host: "127.0.0.1"
在devServer
里面在webpack.config
主机文件没问题。进入 web/dev.js 并将文件更新为以下内容为我解决了这个问题。仍然不确定为什么。
const webpack = require('webpack');
const merge = require('webpack-merge');
const path = require('path');
const { buildConfig, APP_PATH, WEB_PATH } = require('./common');
module.exports = (env, argv) => (
merge(buildConfig(env, argv), {
entry: path.join(WEB_PATH, 'index.hmr.js'),
devtool: 'inline-source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
devServer: {
contentBase: APP_PATH,
openPage: '',
inline: true,
stats: 'minimal',
open: true,
port: 3001,
hot: true,
host: "127.0.0.1"
},
})
);