diff --git a/tests/integration/externals/index.test.ts b/tests/integration/externals/index.test.ts index 43ec926f9..f98d61651 100644 --- a/tests/integration/externals/index.test.ts +++ b/tests/integration/externals/index.test.ts @@ -24,8 +24,8 @@ test('auto externalize Node.js built-in modules when `output.target` is "node"', 'import fs from "fs";', 'import react from "react";', 'const __rspack_createRequire_require = __rspack_createRequire(import.meta.url);', - 'module.exports = __rspack_createRequire_require("foo");', - 'module.exports = __rspack_createRequire_require("bar");', + '__rspack_createRequire_require("foo");', + '__rspack_createRequire_require("bar");', ]) { expect(entries.esm).toContain(external); } @@ -50,12 +50,10 @@ test('should preserve CommonJS node built-in semantics in ESM output', async () // Built-in modules required from bundled CommonJS should keep using createRequire. expect(entries.esm0).toContain( - 'module.exports = __rspack_createRequire_require("node:util");', + '__rspack_createRequire_require("node:util");', ); // Another built-in on the CommonJS path should follow the same node-commonjs runtime semantics. - expect(entries.esm0).toContain( - 'module.exports = __rspack_createRequire_require("stream");', - ); + expect(entries.esm0).toContain('__rspack_createRequire_require("stream");'); // Lazy built-in imports should still be emitted in a runtime-safe form. expect(entries.esm0).toContain('import("node:os")'); expect(entries.esm0).toContain('import("node:path")'); @@ -119,30 +117,25 @@ test('modern-module externals should handle CommonJS requests by target', async 'const __rspack_createRequire_require = __rspack_createRequire(import.meta.url);', ); - for (const request of ['react', 'e2', 'e3', 'e5', 'e6', 'e7']) { + for (const request of ['react', 'e2', 'e3', 'e5', 'e6', 'e7', 'e9', 'e10']) { expect(nodeOutput).toContain( - `module.exports = __rspack_createRequire_require("${request}");`, + `__rspack_createRequire_require("${request}");`, ); } for (const request of ['e1', 'e4']) { - expect(nodeOutput).toContain(`module.exports = require("${request}");`); + expect(nodeOutput).toMatch(new RegExp(`\\brequire\\("${request}"\\)`)); } expect(nodeOutput).toContain('import * as __rspack_external_e8 from "e8";'); expect(nodeOutput).toContain('module.exports = __rspack_external_e8;'); + expect(nodeOutput).toContain('const e8 = __webpack_require__("e8");'); expect(nodeOutput).toContain('"./src/local-false.ts"'); expect(nodeOutput).toContain( 'const localFalse = __webpack_require__("./src/local-false.ts");', ); expect(nodeOutput).not.toContain('require("./local-false")'); - for (const request of ['e9', 'e10']) { - expect(nodeOutput).toContain( - `module.exports = __rspack_createRequire_require("${request}");`, - ); - } - expect(nodeOutput).toContain('const e11 = await import("e11");'); expect(webOutput).not.toContain('node:module'); @@ -160,11 +153,12 @@ test('modern-module externals should handle CommonJS requests by target', async 'e9', 'e10', ]) { - expect(webOutput).toContain(`module.exports = require("${request}");`); + expect(webOutput).toMatch(new RegExp(`\\brequire\\("${request}"\\)`)); } expect(webOutput).toContain('import * as __rspack_external_e8 from "e8";'); expect(webOutput).toContain('module.exports = __rspack_external_e8;'); + expect(webOutput).toMatch(/const e8 = __webpack_require__\("[^"]+"\);/); expect(webOutput).toContain('const e11 = await import("e11");'); });