From b80b612c14d7722b69077cf119aba1d837e1bbd6 Mon Sep 17 00:00:00 2001 From: Daniel Nalborczyk Date: Mon, 15 Feb 2021 23:44:27 -0500 Subject: [PATCH 1/3] feat: add node: prefixed modules --- lib/node/NodeTargetPlugin.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/node/NodeTargetPlugin.js b/lib/node/NodeTargetPlugin.js index 231c8973ed7..cff680e115e 100644 --- a/lib/node/NodeTargetPlugin.js +++ b/lib/node/NodeTargetPlugin.js @@ -61,6 +61,9 @@ const builtins = [ "pnpapi" ]; +// add node: prefixed modules +builtins.push(...builtins.map(builtin => `node:${builtin}`)); + class NodeTargetPlugin { /** * Apply the plugin From da6fe939827d3a18a82454a3be6efaa090d478ab Mon Sep 17 00:00:00 2001 From: dnalborczyk Date: Wed, 17 Feb 2021 10:20:33 -0500 Subject: [PATCH 2/3] Update lib/node/NodeTargetPlugin.js Co-authored-by: Tobias Koppers --- lib/node/NodeTargetPlugin.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/node/NodeTargetPlugin.js b/lib/node/NodeTargetPlugin.js index cff680e115e..fb12b2fb550 100644 --- a/lib/node/NodeTargetPlugin.js +++ b/lib/node/NodeTargetPlugin.js @@ -55,15 +55,13 @@ const builtins = [ "wasi", "worker_threads", "zlib", + /^node:/, // cspell:word pnpapi // Yarn PnP adds pnpapi as "builtin" "pnpapi" ]; -// add node: prefixed modules -builtins.push(...builtins.map(builtin => `node:${builtin}`)); - class NodeTargetPlugin { /** * Apply the plugin From 2b210f98fa05857c15b5a7114e8df71a368fbe2a Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Fri, 18 Jun 2021 11:10:56 +0200 Subject: [PATCH 3/3] add test case --- test/ConfigTestCases.template.js | 6 +++++- test/configCases/node/node-prefix/index.js | 8 ++++++++ test/configCases/node/node-prefix/webpack.config.js | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/configCases/node/node-prefix/index.js create mode 100644 test/configCases/node/node-prefix/webpack.config.js diff --git a/test/ConfigTestCases.template.js b/test/ConfigTestCases.template.js index 41d94c16aa6..79d7e79319a 100644 --- a/test/ConfigTestCases.template.js +++ b/test/ConfigTestCases.template.js @@ -413,7 +413,11 @@ const describeCases = config => { module in testConfig.modules ) { return testConfig.modules[module]; - } else return require(module); + } else { + return require(module.startsWith("node:") + ? module.slice(5) + : module); + } }; results.push( diff --git a/test/configCases/node/node-prefix/index.js b/test/configCases/node/node-prefix/index.js new file mode 100644 index 00000000000..84aa3bd98fd --- /dev/null +++ b/test/configCases/node/node-prefix/index.js @@ -0,0 +1,8 @@ +import vm1 from "vm"; +import vm2 from "node:vm"; + +it("should allow importing node builtin modules with the node: prefix", () => { + expect(require("node:fs")).toBe(require("fs")); + expect(require("node:path")).toBe(require("path")); + expect(vm2).toBe(vm1); +}); diff --git a/test/configCases/node/node-prefix/webpack.config.js b/test/configCases/node/node-prefix/webpack.config.js new file mode 100644 index 00000000000..029181fbeba --- /dev/null +++ b/test/configCases/node/node-prefix/webpack.config.js @@ -0,0 +1,4 @@ +/** @type {import("../../../../").Configuration} */ +module.exports = { + target: "node" +};