本文档全面概述了 Node.js 项目、其架构、治理结构和发布流程。它作为 Node.js 生态系统的介绍,并为理解代码库组织提供了基础。有关核心架构组件的具体细节,请参阅核心架构。
Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,基于 V8 JavaScript 引擎构建。它使开发人员能够使用 JavaScript 进行服务器端脚本编写,通过事件驱动的、非阻塞 I/O 模型创建可伸缩的网络应用程序。
Node.js 项目在 OpenJS 基金会的支持下,采用开放的治理模式。Node.js 的开发和维护通过一个协作过程进行,涉及技术指导委员会 (TSC)、协作者和更广泛的社区。
来源: README.md1-16
Node.js 具有分层的架构,结合了原生组件和 JavaScript API。
来源: README.md1-8
Node.js 由几个关键组件组成
Node.js 遵循一个明确的治理模型,拥有多层次的贡献者。
来源: README.md148-149 doc/contributing/strategic-initiatives.md1-49
治理模型包括
来源: README.md146-773
Node.js 提供不同的发布线来平衡创新与稳定性。
| 发布类型 | 描述 | 支持生命周期 |
|---|---|---|
| 当前 | 最新功能的活动开发分支 | 10 月份的发布为期 8 个月,4 月份的发布将于 10 月份变为 LTS |
| LTS(长期支持) | 生产环境的稳定版本 | 12 个月活跃 LTS + 18 个月维护 |
| 每夜构建 | 当前分支的每日构建 | 无官方支持 |
每个版本都遵循语义化版本控制(MAJOR.MINOR.PATCH)。LTS 版本会获得按字母顺序排列的代号(例如,Node.js 18 的代号为 Hydrogen)。
来源: README.md42-63
Node.js 支持两种模块系统:CommonJS (CJS) 和 ECMAScript Modules (ESM)。
来源: README.md1-8
Node.js 事件循环是实现非阻塞 I/O 操作的核心机制。
Node.js 利用 libuv 在不同操作系统上处理异步操作,提供与底层平台无关的一致 API。
来源: README.md1-8
Node.js 为不同的功能领域提供了几个核心 API
| API 类别 | 核心模块 | 描述 |
|---|---|---|
| 文件系统 | fs, path | 文件和目录操作 |
| 网络 | net, http, https, dgram | TCP/IP、HTTP 和 UDP 功能 |
| 流 | 流 | 分块处理数据 |
| 加密 | crypto, tls | 安全操作 |
| 缓冲区 | buffer | 二进制数据处理 |
| 事件 | events | 事件驱动架构基础 |
| 进程 | process | 当前进程信息和控制 |
来源: README.md1-8
Node.js 通过专门的漏洞处理流程认真对待安全问题。
安全流程包括
来源: doc/contributing/security-release-process.md1-250
Node.js 构建系统负责跨不同平台进行编译。
构建系统使用 GYP (Generate Your Projects) 根据项目的跨平台描述来创建特定于平台的构建文件。
来源: README.md129-133
Node.js 提供全面的 API 文档,并带有稳定性索引,以帮助开发人员做出明智的决定。
| 稳定性级别 | 描述 | 建议 |
|---|---|---|
| 0 - 已弃用 | 可能会发出警告,不保证向后兼容 | 避免使用 |
| 1 - 实验性 | 不受语义化版本控制的约束,可能会更改或删除 | 谨慎使用,不推荐用于生产 |
| 2 - 稳定 | 与 npm 生态系统的兼容性是重中之重 | 可安全用于一般用途 |
| 3 - 旧版 | 仍受语义化版本控制的约束,但未积极维护 | 如果可能,请考虑替代方案 |
来源: doc/api/documentation.md16-64
Node.js 是一个复杂的 JavaScript 运行时,具有分层的架构,结合了 C/C++ 组件和 JavaScript API。其治理模式、发布周期和开发流程旨在平衡创新与稳定性,使其适用于从小型脚本到企业级系统的各种应用。
Node.js 的模块化设计和事件驱动架构使开发人员能够构建高效、可伸缩的应用程序,而开放的治理模式则确保项目能够持续发展以满足用户需求。
有关特定组件的更详细信息,请参阅本 wiki 中的其他页面。
刷新此 Wiki
最后索引时间2025年4月17日(e61937)