Skip to content

Commit b64f56b

Browse files
committed
feat: enable createRequire parser for node targets
1 parent f7e8363 commit b64f56b

12 files changed

Lines changed: 45 additions & 27 deletions

File tree

packages/rspack/src/config/defaults.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,10 +320,12 @@ const applyJavascriptParserOptionsDefaults = (
320320
deferImport,
321321
sourceImport,
322322
outputModule,
323+
isNode,
323324
}: {
324325
deferImport?: boolean;
325326
sourceImport?: boolean;
326327
outputModule: RspackOptionsNormalized['output']['module'];
328+
isNode: boolean;
327329
},
328330
) => {
329331
D(parserOptions, 'dynamicImportMode', 'lazy');
@@ -349,7 +351,7 @@ const applyJavascriptParserOptionsDefaults = (
349351
D(parserOptions, 'deferImport', deferImport);
350352
D(parserOptions, 'sourceImport', sourceImport);
351353
D(parserOptions, 'importMetaResolve', false);
352-
D(parserOptions, 'createRequire', false);
354+
D(parserOptions, 'createRequire', isNode);
353355
};
354356

355357
const applyCssGeneratorOptionsDefaults = (
@@ -463,6 +465,7 @@ const applyModuleDefaults = (
463465
deferImport,
464466
sourceImport,
465467
outputModule,
468+
isNode: targetProperties !== false && targetProperties.node === true,
466469
});
467470

468471
F(module.parser, JSON_MODULE_TYPE, () => ({}));

packages/rspack/src/config/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1398,7 +1398,7 @@ export type JavascriptParserOptions = {
13981398

13991399
/**
14001400
* Enable or disable parsing `import { createRequire } from "module"` and evaluating createRequire().
1401-
* @default false
1401+
* @default true for Node.js-compatible targets, otherwise false
14021402
*/
14031403
createRequire?: boolean | string;
14041404

tests/rspack-test/configCases/require/module-require/rspack.config.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,6 @@ module.exports = {
5050
path: 'node-commonjs path',
5151
},
5252
target: 'node',
53-
module: {
54-
parser: {
55-
javascript: {
56-
createRequire: true,
57-
},
58-
},
59-
},
6053
optimization: {
6154
inlineExports: true,
6255
moduleIds: 'named',

tests/rspack-test/defaultsCases/target_/electron-main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ module.exports = {
3737
- "exportsOnly": false,
3838
+ "exportsOnly": true,
3939
@@ ... @@
40+
- "createRequire": false,
41+
+ "createRequire": true,
42+
@@ ... @@
4043
- "__dirname": "warn-mock",
4144
- "__filename": "warn-mock",
4245
- "global": "warn",

tests/rspack-test/defaultsCases/target_/electron-preload.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ module.exports = {
3535
- "exportsOnly": false,
3636
+ "exportsOnly": true,
3737
@@ ... @@
38+
- "createRequire": false,
39+
+ "createRequire": true,
40+
@@ ... @@
3841
- "__dirname": "warn-mock",
3942
- "__filename": "warn-mock",
4043
- "global": "warn",
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/** @type {import('@rspack/test-tools').TDefaultsCaseConfig} */
2+
module.exports = {
3+
description: "target node with requireResolve disabled",
4+
options: () => ({
5+
target: "node",
6+
module: {
7+
parser: {
8+
javascript: {
9+
requireResolve: false
10+
}
11+
}
12+
}
13+
}),
14+
diff: e => {
15+
e.toEqual({
16+
value: expect.stringMatching(/\+\s+"requireResolve": false/)
17+
});
18+
e.toEqual({
19+
value: expect.stringMatching(/\+\s+"createRequire": true/)
20+
});
21+
}
22+
};

tests/rspack-test/defaultsCases/target_/node.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ module.exports = {
3232
- "exportsOnly": false,
3333
+ "exportsOnly": true,
3434
@@ ... @@
35+
- "createRequire": false,
36+
+ "createRequire": true,
37+
@@ ... @@
3538
- "__dirname": "warn-mock",
3639
- "__filename": "warn-mock",
3740
- "global": "warn",

tests/rspack-test/defaultsCases/target_/nwjs.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ module.exports = {
3131
- "exportsOnly": false,
3232
+ "exportsOnly": true,
3333
@@ ... @@
34+
- "createRequire": false,
35+
+ "createRequire": true,
36+
@@ ... @@
3437
- "__dirname": "warn-mock",
3538
- "__filename": "warn-mock",
3639
- "global": "warn",

tests/rspack-test/esmOutputCases/create-require/import-meta-url-resolve-disabled/rspack.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ module.exports = {
22
module: {
33
parser: {
44
javascript: {
5-
createRequire: true,
65
requireResolve: false,
76
},
87
},

tests/rspack-test/esmOutputCases/create-require/import-meta-url-resolve/rspack.config.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)