使用服务器选项时如何在webpack-hot-client上设置客户端主机和端口?

时间:2019-04-22 11:07:22

标签: webpack websocket koa

我想构建一个全栈Koa服务器,在webpack-hot-client doc上有一些示例。

这是我的代码:

const KoaWebpack = require('koa-webpack')
const app = new Koa()
app.use(myApi) // server side code
const server = app.listen(3000)
const webpackMiddleware = KoaWebpack(config, hotClient: { server })
app.use(webpackMiddleware)

在浏览器控制台中,找到指出无法连接至ws:// [::]:3000的错误。

我认为这是对我的服务器属性的引用,但是我们使用nginx作为代理,不需要更改它。

那么,在这种情况下我该如何设置?

顺便说一句,它是远程服务器,而不是本地服务器。

1 个答案:

答案 0 :(得分:0)

无需修改服务器主机和端口。

我弄错了。

步骤:

  1. 通过koa2制作服务器端应用,并且不监听端口
  2. 将热客户端设置设置为远程服务器,不需要端口(随机)。
  3. 使用webpack中间件。
  4. 听您想要的端口

代码:

const webpack = require('webpack');
const koaWebpack = require('koa-webpack');

const devConfig = require('./build/webpack.dev.conf.js');
const app = require('./server');
const { dev, hotClient } = require('./build/config'); //hotClient: { host }

async function devel() {
  const config =  await devConfig;
  await app.ready; // promise => server ready?
  const koaMiddleware = await koaWebpack({ config, hotClient });
  app.use(koaMiddleware);
  app.listen(dev.port, () => console.log(`full stack hot client listen on port ${dev.port}, wait for webpack compile`));
}

devel().catch(console.error);

module.exports = app;

我有这个问题,因为我目前无法监听端口,它表明某些进程已经在使用它。 这种情况在我看来是终端很近,但nodemon没有。 当我更改文件时,很多nodemon都“运行良好”,因此我无法使用我想要的端口。 那让我判断错误,并浪费了很多时间在webpack和koa端口问题上。