本指南旨在帮助希望为 nodemon 项目贡献的开发者。它涵盖了 nodemon 代码库的设置过程、开发工作流程、测试方法和贡献指南。有关如何在自己的项目中使用 nodemon 的信息,请参阅概述和高级用法。
要开始开发 nodemon,你需要设置本地环境。
克隆仓库
安装依赖项
设置 Git 钩子:项目使用 Husky 来强制执行提交消息格式并在推送前运行测试。
来源:package.json11-13 package.json32-43
为 nodemon 贡献的典型工作流程遵循以下步骤
请注意,在修复错误时,应首先提交一个展示该问题的失败测试,然后在一个单独的提交中提交修复。
来源:.github/CONTRIBUTING.md17-31
nodemon 项目由几个核心组件组成,它们协同工作以提供文件监控和应用程序重启功能。
来源:package.json8-10 package.json30-31
Nodemon 使用 Mocha 进行单元和集成测试。测试文件位于 test 目录下。
运行所有测试
运行特定测试
测试系统包含用于创建 fixtures、在受控环境中运行 nodemon 以及验证其行为的实用程序。
编写测试时,请遵循以下指南:
来源:package.json34-40 test/misc/sigint.test.js1-56 test/fixtures/sigint.js1-9
Nodemon 使用 ESLint 和 JSHint 来维护代码质量和一致性。
来源:.eslintrc.json1-19 .jshintrc1-16 .github/CONTRIBUTING.md17-19
Nodemon 使用 Conventional Commits 进行标准化提交消息。这使得自动生成变更日志成为可能。
提交必须遵循 Angular 风格格式:
<type>: <subject>
[optional body]
其中 <type> 是以下之一:
项目使用 commitlint 自动强制执行此格式。
来源:.github/CONTRIBUTING.md3-15 commitlint.config.js1-3 package.json33
提交拉取请求时
特殊注意事项
nodemon --dump 输出来源:.github/CONTRIBUTING.md21-31 .github/ISSUE_TEMPLATE.md1-27
项目使用持续集成来确保代码质量并在不同环境中进行测试。
Nodemon 使用 semantic-release 自动化版本管理和包发布。这基于 Angular 风格的提交消息,它决定了所需版本升级的类型。
来源:package.json41-43 package.json55 package.json70
调试 nodemon 时:
使用 --dump 标志获取 nodemon 配置的详细信息
设置 DEBUG 环境变量以获取额外的调试信息
要在本地测试更改,请将本地 nodemon 链接到另一个项目
来源:.github/ISSUE_TEMPLATE.md25-26
Nodemon 旨在跨不同平台(包括 Windows、macOS 和 Linux)工作。在开发时,考虑这些差异非常重要,尤其是在以下方面:
鼓励在多个平台进行测试,以确保兼容性。
来源:.github/CONTRIBUTING.md30-31
遵循这些指南,你将能够有效地为 nodemon 项目做出贡献,并帮助改进这个对 Node.js 社区有价值的工具。