Node.js 编程规范 — 避免事件循环阻塞与异步陷阱
本仓库为 CNB Agent Skill,帮助 AI Agent 编写可靠的 Node.js 代码,避免事件循环阻塞、异步陷阱、ESM 兼容性和内存泄漏等常见问题。
openclaw skill install cnbll/nodejs
nodejs/ ├── SKILL.md # Skill 定义文件(事件循环、异步模式、ESM、内存管理) ├── README.md # 本文件 └── _meta.json # Skill 元数据
| 能力 | 说明 |
|---|---|
| 事件循环 | 避免阻塞、setImmediate vs setTimeout、microtask 优先级 |
| 异步模式 | async/await 最佳实践、错误处理、并发控制 |
| ESM 兼容 | CJS/ESM 混用陷阱、__dirname 替代、条件导出 |
| 内存管理 | 内存泄漏排查、Stream 管道、Buffer 池化 |
| 包管理 | package.json 规范、workspace、pnpm 优先 |
Q: ESM 和 CJS 如何选择?
A: 新项目优先 ESM("type": "module"),需要兼容旧生态时用 CJS。避免在同一包中混用。
Q: 云函数支持 ES Module 吗? A: CloudBase 云函数默认 CJS,可通过 bundler(esbuild/rollup)打包为 CJS 格式部署。