Skip to content

Commit b138e84

Browse files
refactor: fix blocking in spawn processes (#4637)
1 parent 1bacc0d commit b138e84

5 files changed

Lines changed: 1441 additions & 58 deletions

File tree

scripts/set-blocking.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"use strict";
2+
3+
process.stdout._handle.setBlocking(true);

scripts/update-docs.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const { writeFileSync } = require("node:fs");
22
const { resolve } = require("node:path");
3+
const { pathToFileURL } = require("node:url");
34
const { version } = require("webpack-dev-server/package.json");
45

56
const [majorDevServerVersion] = version.split(".");
@@ -8,12 +9,13 @@ const [majorDevServerVersion] = version.split(".");
89
* @returns {Promise<void>}
910
*/
1011
async function updateDocs() {
11-
const { execa } = await import("execa");
12-
const { stdout: cliOptions } = await execa(
12+
const { execaNode } = await import("execa");
13+
const { stdout: cliOptions } = await execaNode(
1314
resolve(__dirname, "../packages/webpack-cli/bin/cli.js"),
1415
["--help=verbose", "--no-color"],
1516
{
1617
cwd: __dirname,
18+
nodeOptions: [`--import=${pathToFileURL(resolve(__dirname, "./set-blocking.js"))}`],
1719
},
1820
);
1921

@@ -24,11 +26,12 @@ async function updateDocs() {
2426
writeFileSync("OPTIONS.md", mdContent);
2527

2628
// serve options
27-
const { stdout: serveOptions } = await execa(
29+
const { stdout: serveOptions } = await execaNode(
2830
resolve(__dirname, "../packages/webpack-cli/bin/cli.js"),
2931
["serve", "--help", "--no-color"],
3032
{
3133
cwd: __dirname,
34+
nodeOptions: [`--import=${resolve(__dirname, "./set-blocking.js")}`],
3235
},
3336
);
3437

0 commit comments

Comments
 (0)