Vue CLI 和 Webpack:无法将 webpack-dev-server 设置为 运行

Vue CLI & Webpack: can't get webpack-dev-server to run

我正在使用 vue init webpack project-name 生成一个 webpack 开发服务器。生成服务器后,运行 npm run dev 产生以下错误:

> client@1.0.0 dev /home/localhost/dev/vuetest/client
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

 10% building modules 1/3 modules 2 active .../client/index.js?http://localhost:8080events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND localhost
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:26)
Emitted 'error' event at:
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:12)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! client@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the client@1.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!     /home/localhost/.npm/_logs/2018-06-17T22_25_08_212Z-debug.log

这是来自 package.json 的开发脚本,由 vue

自动生成
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"

这是我正在使用的节点和 vue-cli 的版本:

$ node -v
v10.4.0
$ vue -V
3.0.0-rc.2

到目前为止我尝试过的事情:

有趣的是,我在 Windows 10 和 openSUSE Tumbleweed(当前机器)上都遇到了这个错误,但是当我在 Ubuntu VM 上生成相同的 vue 项目时,它工作得很好。

编辑:

问题是由于 webpack.dev.conf.js 试图使用我的 linux hostname 而不是默认的 "localhost"。更改此行:

host: HOST || config.dev.host,

对此:

host: "localhost",

解决了问题。

尝试用这个创建项目。您使用版本 3 rc.2 并且 init 命令属于版本 2。

vue create project-name

文档: https://cli.vuejs.org/guide/creating-a-project.html#using-the-gui

这个问题有两个解决方案:

正如@atilkan 指出的那样,vue init project-name 命令从 Vue CLI 3 开始已被弃用。使用 vue create project-name,我已经能够成功生成并 运行 一个开发服务器。你可以阅读更多关于 Vue CLI 3 的新项目创建语法 here.

此外,最初由已弃用的 vue init 命令创建的项目无法为自己分配正确的主机名。问题是由于 webpack.dev.conf.js 试图使用我的 linux 主机名而不是默认的 "localhost"。更改此行:

host: HOST || config.dev.host,

对此:

host: "localhost",

问题已解决。 Error: getaddrinfo ENOTFOUND yourHostName 这样做可能会修复错误,尽管这可能不是最好的方法。