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"
    },
  })
);