CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Node.js 运行时进阶/课时/global 与内置模块
RawBlame
课时目录12 节

Node.js 运行时进阶

  1. 01运行时进阶概览
  2. 02定时器与 nextTick
  3. 03回调与错误栈
  4. 04子进程
  5. 05Worker Threads
  6. 06Cluster 与多进程
  7. 07垃圾回收
  8. 08调试 Node
  9. 09APM 与生产监控
  10. 10CLI 工具链
  11. 11global 与内置模块
  12. 12综合练习

global 与内置模块

global-keyword、common-built-in-modules。

25 分钟

global 与内置模块

nodejs-essentials 的 node-modules 讲了 require/import。本课梳理 global 对象、globalThis、常用 node: 内置模块——写运行时脚本时知道「不用 npm 装什么」。

学习目标

  • 理解 global / globalThis 与「不要污染全局」原则
  • 列出 path、os、crypto、events、util 等高频内置模块
  • 使用 node: 前缀 import 的最佳实践

global 与 globalThis

浏览器有 window;Node 有 global(CommonJS 时代)与标准 globalThis(ES2020,跨环境统一)。

globalThis.__APP_VERSION__ = "1.0.0"; // 可用但不推荐

反模式:在库文件里挂 global.myUtil = ...——污染命名空间,与测试、多实例冲突。

推荐:模块 export;真需单例用闭包或 Symbol.for 注册表(高级)。

process、Buffer、__dirname(CJS)/import.meta.url(ESM)是 Node 特有「准全局」——见 node-runtime。

node: 前缀

Node 18+ 推荐显式内置:

import fs from "node:fs/promises";
import path from "node:path";
import crypto from "node:crypto";
import { EventEmitter } from "node:events";
import { promisify } from "node:util";

避免与 npm 包同名冲突(历史上曾有 events 包与内置混淆)。

内置模块地图

模块用途本 track 关联
timers / global timers定时器nrt-timers
child_process子进程nrt-child
worker_threads工作线程nrt-worker
cluster多进程nrt-cluster
perf_hooks
性能、EL delay
nrt-apm
inspector编程式调试nrt-debug
v8heap 统计nrt-gc
osCPU、内存、homecluster _fork 数量
readlinestdin 行读nva-cli

完整列表:node --experimental-repl-await 里 require('node:module').builtinModules 或官方 docs。

events 与 stream

EventEmitter 是 Node 核心模式(nva-events)。Stream 在 node-streams 深入;运行时只需知 pipeline + promisify 防泄漏。

import { pipeline } from "node:stream/promises";
import { createReadStream, createWriteStream } from "node:fs";

练习

  • 用 node:os 打印 cpus().length 与 homedir()
  • 用 node:crypto 生成 randomUUID,不写任何 npm 依赖
  • 列出你项目里可改为 node: 前缀的三个 import

小结

globalThis 统一全局;内置 node: 模块覆盖运行时大半需求。 下一课综合练习——Worker + 调试一条 CPU 流水线。

加载本节练习…
← 上一课CLI 工具链下一课 →综合练习