Node
The following Node.js options configure whether to polyfill or mock certain Node.js globals.
- Type:
false | object
Set node to false to disable all Node.js global polyfills and mocks. Otherwise, configure the individual options below.
node.global
- Type:
boolean | 'warn' - Default:
'warn'
Controls whether Rspack should provide a polyfill for the Node.js global object when bundling for non-Node environments.
See the Node.js documentation for the exact behavior of this object.
Available values
true: Rspack injects a polyfill so thatglobalis available in the bundle. This ensures compatibility with code that relies on Node.js globals in non-Node runtimesfalse: No polyfill is provided. References toglobalremain untouched. If your target environment does not defineglobal, accessing it will throw aReferenceErrorat runtime'warn': Inject a polyfill liketrue, but also emit a warning whenglobalis used
Examples
For example, to disable global polyfill:
node.__filename
- Type:
boolean | 'mock' | 'warn-mock' | 'eval-only' | 'node-module' - Default:
- If
targetdoes not includenode, defaults to'warn-mock'. - If
targetincludesnode, uses'node-module'if output.module is enabled, otherwise'eval-only'.
- If
Controls how Rspack handles the Node.js __filename and import.meta.filename variables when bundling for non-Node environments.
Available values
true: Replace with the relative file path of the source file, relative to thecontextoptionfalse: Do nothing and keep the native behavior'mock': Replace with'/index.js''eval-only': Equivalent tofalse'warn-mock': Replace with'/index.js', and emit a warning to indicate a potential Node.js dependency in the code'node-module': Only used when output.module is enabled. Replace__filenamein CommonJS with an equivalent implementation based onimport.meta.url, suitable for ESM output
Examples
For example, to avoid processing __filename and import.meta.filename, preserving the original content in the output:
To replace __filename and import.meta.filename in ESM output with fileURLToPath(import.meta.url):
node.__dirname
- Type:
boolean | 'mock' | 'warn-mock' | 'eval-only' | 'node-module' - Default:
- If
targetdoes not includenode, defaults to'warn-mock'. - If
targetincludesnode, uses'node-module'if output.module is enabled, otherwise'eval-only'.
- If
Controls how Rspack handles the Node.js __dirname and import.meta.dirname variables when bundling for non-Node environments.
Available values
true: Replace with the directory path of the source file, relative to thecontextoptionfalse: Do nothing and keep the native behavior'mock': Replace with'/''eval-only': Equivalent tofalse'warn-mock': Replace with'/', and emit a warning to indicate a potential Node.js dependency in the code'node-module': Only used when output.module is enabled. Replace__dirnamein CommonJS with an equivalent implementation based onimport.meta.url, suitable for ESM output
Examples
For example, to avoid processing __dirname and import.meta.dirname, preserving the original content in the output:
To replace __dirname and import.meta.dirname in ESM output with fileURLToPath(import.meta.url + "/.."):
This page is adapted from webpack documentation under the CC BY 4.0, with modifications.

