CD's blog CD's blog
首页
  • HTMLCSS
  • JavaScript
  • Vue
  • TypeScript
  • React
  • Node
  • Webpack
  • Git
  • Nestjs
  • 小程序
  • 浏览器网络
  • 学习笔记

    • 《TypeScript 从零实现 axios》
    • Webpack笔记
  • JS/TS教程

    • 《现代JavaScript》教程
🔧工具方法
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

CD_wOw

内卷的行情,到不了的梦
首页
  • HTMLCSS
  • JavaScript
  • Vue
  • TypeScript
  • React
  • Node
  • Webpack
  • Git
  • Nestjs
  • 小程序
  • 浏览器网络
  • 学习笔记

    • 《TypeScript 从零实现 axios》
    • Webpack笔记
  • JS/TS教程

    • 《现代JavaScript》教程
🔧工具方法
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 配置

    • 配置
    • 使用不同语言进行配置(configuration languages)
    • 多种配置类型(configuration types)
    • 入口和上下文(entry and context)
    • 输出(output)
    • 模块(module)
    • 解析(resolve)
    • 插件(plugins)
    • 开发中 Server(devServer)
    • devtool
    • 构建目标(targets)
    • watch 和 watchOptions
    • 外部扩展(externals)
    • 性能(performance)
    • Node
      • node
      • node.console
      • node.process
      • node.global
      • node.__filename
      • node.__dirname
      • node.Buffer
      • node.setImmediate
      • 其他 Node.js 核心库(Node.js core libraries)
    • 统计信息(stats)
    • 其它选项(other options)
  • 指南(实例)

  • 《Webpack》笔记
  • 配置
CD_wOw
2020-12-15
目录

Node

这些选项可以配置是否 polyfill 或 mock 某些 Node.js 全局变量 (opens new window)和模块。这可以使最初为 Node.js 环境编写的代码,在其他环境(如浏览器)中运行。

此功能由 webpack 内部的 NodeStuffPlugin (opens new window) 插件提供。如果 target 是 "web"(默认)或 "webworker",那么 NodeSourcePlugin (opens new window) 插件也会被激活。

# node

type: object

是一个对象,其中每个属性都是 Node.js 全局变量或模块的名称,每个 value 是以下其中之一……

  • true:提供 polyfill。
  • "mock":提供 mock 实现预期接口,但功能很少或没有。
  • "empty":提供空对象。
  • false: 什么都不提供。预期获取此对象的代码,可能会因为获取不到此对象,触发 ReferenceError 而崩溃。尝试使用 require('modulename') 导入模块的代码,可能会触发 Cannot find module "modulename" 错误。

注意,不是每个 Node 全局变量都支持所有选项。对于不支持的键值组合(property-value combination),compiler 会抛出错误。更多细节请查看接下来的章节。

这里是默认值:

node: {
  console: false,
  global: true,
  process: true,
  __filename: "mock",
  __dirname: "mock",
  Buffer: true,
  setImmediate: true

  // 更多选项,请查看“其他 Node.js 核心库”
}
1
2
3
4
5
6
7
8
9
10
11

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

# node.console

type: boolean | 'mock'

默认值: false

浏览器提供一个 console 对象,具有非常类似 Node.js console 的接口,所以通常不需要 polyfill。

# node.process

type: boolean | "mock"

默认值:true

# node.global

type: boolean

默认值:true

关于此对象的准确行为,请查看源码 (opens new window)。

# node.__filename

type: boolean | "mock"

默认值:"mock"

选项:

  • true: 输入文件的文件名,是相对于 context 选项 (opens new window)。
  • false: 常规的 Node.js __filename 行为。在 Node.js 环境中运行时,输出文件的文件名。
  • "mock": value 填充为 "index.js".

# node.__dirname

type: boolean | "mock"

默认值:"mock"

选项:

  • true: 输入文件的目录名,是相对于 context 选项 (opens new window)。
  • false: 常规的 Node.js __dirname 行为。在 Node.js 环境中运行时,输出文件的目录名。
  • "mock": value 填充为 "/"。

# node.Buffer

type: boolean | "mock"

默认值:true

# node.setImmediate

type: boolean | "mock" | "empty"

默认值:true

# 其他 Node.js 核心库(Node.js core libraries)

type: boolean | "mock" | "empty"

只有当 target 是未指定、"web" 或 "webworker" 这三种情况时,此选项才会被激活(通过 NodeSourcePlugin)。

当 NodeSourcePlugin 插件启用时,则会使用 node-libs-browser (opens new window) 来对 Node.js 核心库 polyfill。请查看 Node.js 核心库及其 polyfills (opens new window) 列表。

默认情况下,如果有一个已知的 polyfill,webpack 会对每个 library 进行 polyfill,如果没有,则 webpack 不会执行任何操作。在后一种情况下,如果模块名称配置为 false 值,webpack 表现为不会执行任何操作。

为了导入内置的模块,使用 __non_webpack_require__ (opens new window),例如,使用 __non_webpack_require__('modulename') 而不是 require('modulename')。

示例:

node: {
  dns: "mock",
  fs: "empty",
  path: true,
  url: false
}
1
2
3
4
5
6
编辑 (opens new window)
#Webpack
上次更新: 2021/08/22, 01:09:59
性能(performance)
统计信息(stats)

← 性能(performance) 统计信息(stats)→

最近更新
01
gsap动画库学习笔记 - 持续~
06-05
02
远程组件加载方案笔记
05-03
03
小程序使用笔记
03-29
更多文章>
Theme by Vdoing | Copyright © 2020-2023 CD | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式