Node

这些选项可以配置是否 polyfill 或 mock 某些 Node.js 全局变量

此功能由 webpack 内部的 NodeStuffPlugin 插件提供。

node

boolean: false object

webpack.config.js

module.exports = {
  //...
  node: {
    global: false,
    __filename: false,
    __dirname: false,
  },
};

从 webpack 3.0.0 开始,node 选项可能被设置为 false,以完全关闭 NodeStuffPlugin 插件。

node.global

boolean 'warn'

关于此对象的准确行为,请查看Node.js 文档

选项:

  • true: 提供 polyfill.
  • false: 不提供任何 polyfill。代码可能会出现 ReferenceError 的崩溃。
  • 'warn': 当使用 global 时展示一个警告。

node.__filename

boolean 'mock' | 'warn-mock' | 'eval-only'

选项:

  • true: 输入文件的文件名,是相对于 context 选项
  • false: webpack 不会更改 __filename 的代码。在 Node.js 环境中运行时,文件的文件名。
  • 'mock': value 填充为 'index.js'
  • 'warn-mock': 使用 '/index.js' 但是会展示一个警告。
  • 'eval-only'

node.__dirname

boolean 'mock' | 'warn-mock' | 'eval-only'

选项:

  • true: 输入 文件的目录名,是相对于 context 选项
  • false: webpack 不会更改 __dirname 的代码,这意味着你有常规 Node.js 中的 __dirname 的行为。在 Node.js 环境中运行时,输出 文件的目录名。
  • 'mock': value 填充为 '/'
  • 'warn-mock': 使用 '/' 但是会显示一个警告。
  • 'eval-only'

2 位译者

8 位贡献者

sokraskipjackoneforwonderRob--WbyzykEugeneHlushkoanikethsahachenxsan

Webpack 5 现已正式发布。请阅读我们的 发布公告。如还未准备升级,请阅读 webpack 4 文档