mcpField
N
node-best-practices

node-best-practices

github.com/mcollina开发2.0k404 次安装2 周前更新
代码仓库

关于 node-best-practices

面向 Node.js 应用开发的参考技能,涵盖 TypeScript、错误处理、异步代码、测试、性能和运维,并提供工作流指导及规则示例。

主要功能

  1. 01Node.js TypeScript 类型剥离指南
  2. 02错误处理与异步模式
  3. 03测试及不稳定测试诊断
  4. 04性能分析与优化
  5. 05日志、配置和优雅关闭实践

适用场景

  1. 01无需构建步骤编写 Node.js TypeScript
  2. 02设计错误处理与优雅关闭流程
  3. 03排查不稳定测试
  4. 04分析并优化缓慢代码路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mcollina/skills --skill node-best-practices

安装后在 Claude Code 中输入/node-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
async-patterns.md
caching.md
environment.md
error-handling.md
flaky-tests.md
graceful-shutdown.md
logging.md
modules.md
node-modules-exploration.md
performance.md
profiling.md
streams.md
testing.md
typescript.md
rules/assets/
graceful-server.test.ts
graceful-server.ts

详细介绍

适用场景

每当你处理 Node.js 代码时,都可以使用此技能来获取领域专属知识,以构建健壮、高性能且易于维护的 Node.js 应用程序。

使用类型剥离的 TypeScript

为 Node.js 编写 TypeScript 时,请使用类型剥离(Node.js 22.6+),而不是 ts-node 或 tsx 等构建工具。类型剥离会在运行时移除类型注解,直接运行 TypeScript,无需转译。

与类型剥离兼容的关键要求:

  • 对仅用于类型的导入使用 import type
  • 使用 const 对象而非枚举
  • 避免使用命名空间和参数属性
  • 在导入中使用 .ts 扩展名

最简示例——有效的类型剥离 TypeScript 文件:

// greet.ts
import type { IncomingMessage } from 'node:http';

const greet = (name: string): string => `Hello, ${name}!`;
console.log(greet('world'));

直接运行:

node greet.ts

完整配置和示例请参阅 rules/typescript.md。

常见工作流

对于多步骤流程,请先遵循以下高级流程,再查阅相关规则文件:

优雅关闭:注册信号处理程序(SIGTERM/SIGINT)→ 停止接受新任务 → 处理完正在进行的请求 → 关闭外部连接(DB、缓存)→ 以适当的代码退出。请参阅 rules/graceful-shutdown.md。

错误处理:定义共享错误基类 → 对错误分类(操作错误与程序员错误)→ 添加异步边界处理程序(process.on('unhandledRejection'))→ 在调用栈中传递类型化错误 → 在响应或崩溃前附带上下文记录日志。请参阅 rules/error-handling.md。

诊断不稳定的测试:使用 --test-only 隔离测试 → 检查共享状态或计时器依赖 → 检查异步清理顺序 → 将重试逻辑作为临时诊断步骤 → 修复根本原因。请参阅 rules/flaky-tests.md。

分析缓慢路径:在真实负载下复现 → 使用 --cpu-prof 捕获 CPU 性能分析文件 → 找出热点函数 → 检查流背压或不必要的序列化 → 使用基准测试验证改进。请参阅 rules/profiling.md 和 rules/performance.md。

使用方法

阅读各个规则文件,了解详细说明和代码示例:

评论

支持 Markdown