本文档全面概述了 Node.js 项目中使用的开发工具。它涵盖了各种有助于开发人员维护代码质量、处理文档以及确保代码库一致性的实用程序、脚本和配置。
Node.js 在开发、测试和文档方面使用了几种专用工具。这些工具有助于维护代码质量、确保文档准确性并简化开发工作流程。
来源: tools/lint-md/package.json .github/dependabot.yml
Node.js 使用自定义的 Markdown 语法检查工具来确保文档质量和一致性。该工具位于 tools/lint-md 目录中,并使用 remark 生态系统进行 Markdown 处理。
来源: tools/lint-md/lint-md.mjs1-60 tools/lint-md/package.json1-13
该语法检查系统执行两项主要功能:
该语法检查工具可以以两种模式运行:
该工具通常通过构建命令调用。
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-node | Node.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
虽然严格来说它不是一个开发工具,但 Node.js 提供了内置的 TypeScript 支持,这与开发工作流程相关。
Node.js 通过类型剥离提供了内置的 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 文件维护大量的文档。文档工具链包括:
文档遵循特定约定:
有关文档工具的更多详细信息,请参阅 文档工具。
来源: tools/lint-md/lint-md.mjs38-43 doc/api/typescript.md1-14
虽然在提供的文件中没有广泛介绍,但 Node.js 还包含各种其他开发工具:
有关构建系统的信息,请参阅 构建系统。
有关测试工具的信息,请参阅 测试和质量保证。