菜单

开发工具

相关源文件

本文档全面概述了 Node.js 项目中使用的开发工具。它涵盖了各种有助于开发人员维护代码质量、处理文档以及确保代码库一致性的实用程序、脚本和配置。

概述

Node.js 在开发、测试和文档方面使用了几种专用工具。这些工具有助于维护代码质量、确保文档准确性并简化开发工作流程。

来源: tools/lint-md/package.json .github/dependabot.yml

Markdown Linting

Node.js 使用自定义的 Markdown 语法检查工具来确保文档质量和一致性。该工具位于 tools/lint-md 目录中,并使用 remark 生态系统进行 Markdown 处理。

架构和组件

来源: tools/lint-md/lint-md.mjs1-60 tools/lint-md/package.json1-13

该语法检查系统执行两项主要功能:

  1. 验证:根据 Node.js 特定的样式规则检查 Markdown 文件。
  2. 格式化:可选地重新格式化 Markdown 文件以符合样式指南。

用途

该语法检查工具可以以两种模式运行:

  • 检查模式:报告错误但不修改文件。
  • 格式化模式:自动修复格式问题。

该工具通常通过构建命令调用。

make lint-md      # Check Markdown files
make format-md    # Format Markdown files

在 Windows 上

vcbuild lint-md
vcbuild format-md

关键组件

组件目的
remark-parse将 Markdown 解析为抽象语法树。
remark-preset-lint-nodeNode.js 特定的语法检查规则。
remark-stringify将 AST 序列化回 Markdown。
to-vfile文件处理抽象。
vfile-reporter错误报告实用程序。

来源: tools/lint-md/package.json5-11

特殊情况

该语法检查器对 API 文档文件执行额外的检查:

  • 验证 introduced_in 元数据是否存在。
  • 确保版本信息已正确记录。

来源: tools/lint-md/lint-md.mjs38-43

依赖管理

Node.js 使用 GitHub 的 Dependabot 来自动化开发工具中的依赖项管理。Dependabot 配置为根据计划定期扫描和更新依赖项。

配置

Dependabot 配置定义在 .github/dependabot.yml 中,包含:

来源: .github/dependabot.yml1-37

Dependabot 配置的关键方面:

生态系统目录更新间隔提交前缀
GitHub Actions/每月meta
npm/tools/eslint每月tools
npm/tools/lint-md每月tools

更新按工具分组,以减少 PR 噪音和维护者开销。

来源: .github/dependabot.yml13-37

TypeScript 支持

虽然严格来说它不是一个开发工具,但 Node.js 提供了内置的 TypeScript 支持,这与开发工作流程相关。

类型剥离

Node.js 通过类型剥离提供了内置的 TypeScript 支持。此功能:

  • 将 TypeScript 语法替换为空白。
  • 保留行号以进行错误报告。
  • 不要求源映射。

来源: doc/api/typescript.md52-75

功能和限制

内置 TypeScript 支持具有以下特点:

功能支持状态
类型剥离默认支持。
完整的类型检查不支持
tsconfig.json被忽略。
路径别名不支持
文件扩展名导入中必需。
类型导入需要 import type 语法。

Node.js 可以开箱即用地执行带有可擦除语法的 TypeScript 文件。对于不可擦除语法(如枚举、参数属性等),需要 --experimental-transform-types 标志。

来源: doc/api/typescript.md122-136 doc/api/typescript.md163-183

第三方工具集成

为了获得完整的 TypeScript 支持,Node.js 文档建议使用第三方包,例如 tsx

npm install --save-dev tsx
npx tsx your-file.ts

或使用 Node.js 和导入钩子。

node --import=tsx your-file.ts

来源: doc/api/typescript.md27-50

文档工具

Node.js 项目使用 Markdown 文件维护大量的文档。文档工具链包括:

  1. Markdown 语法检查(如上所述)。
  2. API 文档生成器。
  3. 文档验证工具。

文档遵循特定约定:

  • API 文档包含版本元数据。
  • 使用稳定性指示符标记 API 成熟度。
  • 代码示例遵循一致的风格。

有关文档工具的更多详细信息,请参阅 文档工具

来源: tools/lint-md/lint-md.mjs38-43 doc/api/typescript.md1-14

其他开发工具

虽然在提供的文件中没有广泛介绍,但 Node.js 还包含各种其他开发工具:

  • 代码语法检查:使用 ESLint 进行 JavaScript/TypeScript。
  • C++ 语法检查:用于 C++ 代码质量的工具。
  • 测试框架:用于运行单元、集成和平台测试。
  • 基准测试工具:用于性能测试。
  • CI 工作流:用于持续集成的 GitHub Actions 配置。

有关构建系统的信息,请参阅 构建系统

有关测试工具的信息,请参阅 测试和质量保证