Node

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.

W> As of webpack 5, You can configure only global , __filename or __dirname under node option. If you're looking for how to polyfill fs alike in Node.js under webpack 5, please check resolve.fallback for help.

node

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.

node.global

boolean

If you are using a module which needs global variables in it, use ProvidePlugin instead of global .

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.

node.__filename

boolean string: 'mock' | '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'.
  • 'eval-only'

node.__dirname

boolean string: 'mock' | '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 '/'.
  • 'eval-only'