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.
boolean: false
object
webpack.config.js
module.exports = {
//...
node: {
global: false,
__filename: false,
__dirname: false,
},
};
Since webpack 3.0.0, 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'