-
Notifications
You must be signed in to change notification settings - Fork 77
Closed
Description
The webpack-dev-server example failed to run that integrated with latest @hono/node-server.
% npx webpack-cli serve
[webpack-cli] Error [ERR_SERVER_ALREADY_LISTEN]: Listen method has been called more than once without closing.
at Server.listen (node:net:2008:11)
at READ_WRITE (/path/to/repo/cjs/node_modules/webpack-dev-server/lib/Server.js:3332:23)
at new Promise (<anonymous>)
at Server.start (/path/to/repo/cjs/node_modules/webpack-dev-server/lib/Server.js:3330:7)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Command.<anonymous> (/path/to/repo/cjs/node_modules/@webpack-cli/serve/lib/index.js:158:21)
at async Command.parseAsync (/path/to/repo/cjs/node_modules/webpack-cli/node_modules/commander/lib/command.js:935:5)
at async Command.<anonymous> (/path/to/repo/cjs/node_modules/webpack-cli/lib/webpack-cli.js:1356:13)
at async Command.parseAsync (/path/to/repo/cjs/node_modules/webpack-cli/node_modules/commander/lib/command.js:935:5)
at async WebpackCLI.run (/path/to/repo/cjs/node_modules/webpack-cli/lib/webpack-cli.js:1360:9) {
code: 'ERR_SERVER_ALREADY_LISTEN'
}I'm not sure which library should be responsible for listening to the server, but at least in certain versions there is no problem on the webpack-dev-server side, so I reported it here.
Enivironment
% node --version
v22.4.0Steps to reproduce
Files
- package.json
{
"type": "module",
"devDependencies": {
"@hono/node-server": "^1.13.3",
"hono": "^4.6.8",
"webpack": "^5.95.0",
"webpack-cli": "^5.1.4",
"webpack-dev-middleware": "^7.4.2",
"webpack-dev-server": "^5.1.0"
}
}- webpack.config.js
import wdm from "webpack-dev-middleware";
import { Hono } from "hono";
import { serve } from "@hono/node-server";
const app = new Hono();
app.get("/", (c) => {
return c.text("Hello, Hono!");
})
export default {
entry: "./app.js",
devServer: {
setupMiddlewares: (_, devServer) => [
{
name: "webpack-dev-middleware",
middleware: wdm.honoWrapper(devServer.compiler),
},
],
app: () => app,
server: (_, app) =>
serve({
fetch: app.fetch,
}),
},
};- app.js
export function add(a, b) {
return a + b;
}Command
% npm ci
% npx webpack-cli serveMy guess
It seems to break after the below PR landed.
Metadata
Metadata
Assignees
Labels
No labels