The following Node.js options configure whether to polyfill or mock certain Node.js globals.
This feature is provided by webpack's internal NodeStuffPlugin
plugin.
false
object
webpack.config.js
module.exports = {
//...
node: {
global: false,
__filename: false,
__dirname: false,
},
};
The node
option may be set to false
to completely turn off the NodeStuffPlugin
plugin.
boolean
'warn'
See the Node.js documentation for the exact behavior of this object.
Options:
true
: Provide a polyfill.false
: Provide nothing. Code that expects this object may crash with a ReferenceError
.'warn'
: Show a warning when using global
.boolean
'mock' | 'warn-mock' | 'node-module' | 'eval-only'
Options:
true
: The filename of the input file relative to the context
option.false
: Webpack won't touch your __filename
code, which means you have the regular Node.js __filename
behavior. The filename of the output file when run in a Node.js environment.'mock'
: The fixed value '/index.js'
.'warn-mock'
: Use the fixed value of '/index.js'
but show a warning.'node-module'
: Replace __filename
in CommonJS modules to fileURLToPath(import.meta.url)
when output.module
is enabled.'eval-only'
boolean
'mock' | 'warn-mock' | 'node-module' | 'eval-only'
Options:
true
: The dirname of the input file relative to the context
option.false
: Webpack won't touch your __dirname
code, which means you have the regular Node.js __dirname
behavior. The dirname of the output file when run in a Node.js environment.'mock'
: The fixed value '/'
.'warn-mock'
: Use the fixed value of '/'
but show a warning.'node-module'
: Replace __dirname
in CommonJS modules to fileURLToPath(import.meta.url + "/..")
when output.module
is enabled.'eval-only'