Node.js Coding Practices
Application skill for felixge Node style + Microsoft nodejs-guidelines platform ingest (awesome-guidelines). For generic JS modules, load javascript-coding-practices. TypeScript Node: add typescript-coding-standards.
Core Principle
Node quality is small modules with strict style and reproducible npm packaging, felixge layout habits, top-level requires, no prototype hacks, env-aware servers, cross-platform deps.
When to Use / NOT
- Node.js apps, npm packages, Express/Fastify servers, CLI tools, native-addon consumers.
- Reviewing
.js CommonJS/ESM on Node before merge.
NOT when:
- Browser-only bundles,
javascript-coding-practices.
- Pure TypeScript without JS overlap,
typescript-coding-standards primary.
- MDN documentation examples,
mdn-code-examples-practices.
Workflow
- Format, 2-space, semicolons, quotes, braces (
node-style-formatting-layout.md).
- Functions/modules, size, closures, requires (
node-style-functions-modules.md).
- Naming/conditionals, ===, predicates, camelCase (
node-style-conditionals-naming.md).
- Platform, npm, PORT, Windows, native (
node-style-platform-verify.md).
- Verify, ESLint/EditorConfig +
npm test + platform notes for native deps.
Red Flags
- Tabs or mixed tab/space indent
- Trailing whitespace
- Missing semicolons (ASI reliance) on felixge-profile projects
- Double quotes for ordinary strings (felixge profile)
- Allman braces (brace on next line)
- Multi-binding
var a, b, c on one statement
- snake_case identifiers
- Loose
== / !=
- Complex
if without named predicate variable
- Deeply nested if/else without early return
- Anonymous nested callback pyramids
Array.prototype / native prototype extension
- Setters with side effects; eval/with
- require/import mid-file
- Hard-coded listen port without env override
- Committed
node_modules
- Wild
"*" production dependency versions
- Windows MAX_PATH ignored in deep nested installs
- Global
-g tools causing version skew
- nodemon in production deployment docs
- Public npm package Windows-only without platform check
Verification
- ESLint (felixge-aligned or project config) on changed files
- EditorConfig indent/charset/end_of_line
npm install && npm test (or npm start smoke)
- Capsule probes on server PORT and require placement
- Native addon: document/build verify on Windows if
node-gyp in tree
References
awesome-guidelines/references/node-style-learning-note.md
awesome-guidelines/references/node-style-formatting-layout.md
awesome-guidelines/references/node-style-functions-modules.md
awesome-guidelines/references/node-style-conditionals-naming.md
awesome-guidelines/references/node-style-platform-verify.md
Related skills
javascript-coding-practices, modern const/let, ES modules
powershell-scripting-practices, Windows shell glue adjacent to Node on Windows
shell-scripting-practices, Unix deploy scripts
1---2name: node-coding-practices3description: Use when authoring or reviewing Node.js, felixge 2-space semicolons, camelCase/===, small early-return functions, top requires, npm/package.json, PORT env, and cross-platform Windows path hygiene.4---56# Node.js Coding Practices78Application skill for felixge Node style + Microsoft nodejs-guidelines platform ingest (`awesome-guidelines`). For generic JS modules, load `javascript-coding-practices`. TypeScript Node: add `typescript-coding-standards`.910## Core Principle1112Node quality is **small modules with strict style and reproducible npm packaging**, felixge layout habits, top-level requires, no prototype hacks, env-aware servers, cross-platform deps.1314## When to Use / NOT1516- Node.js apps, npm packages, Express/Fastify servers, CLI tools, native-addon consumers.17- Reviewing `.js` CommonJS/ESM on Node before merge.1819**NOT when:**2021- Browser-only bundles, `javascript-coding-practices`.22- Pure TypeScript without JS overlap, `typescript-coding-standards` primary.23- MDN documentation examples, `mdn-code-examples-practices`.2425## Workflow26271. **Format**, 2-space, semicolons, quotes, braces (`node-style-formatting-layout.md`).282. **Functions/modules**, size, closures, requires (`node-style-functions-modules.md`).293. **Naming/conditionals**, ===, predicates, camelCase (`node-style-conditionals-naming.md`).304. **Platform**, npm, PORT, Windows, native (`node-style-platform-verify.md`).315. **Verify**, ESLint/EditorConfig + `npm test` + platform notes for native deps.3233## Red Flags3435- Tabs or mixed tab/space indent36- Trailing whitespace37- Missing semicolons (ASI reliance) on felixge-profile projects38- Double quotes for ordinary strings (felixge profile)39- Allman braces (brace on next line)40- Multi-binding `var a, b, c` on one statement41- snake_case identifiers42- Loose `==` / `!=`43- Complex `if` without named predicate variable44- Deeply nested if/else without early return45- Anonymous nested callback pyramids46- `Array.prototype` / native prototype extension47- Setters with side effects; eval/with48- require/import mid-file49- Hard-coded listen port without env override50- Committed `node_modules`51- Wild `"*"` production dependency versions52- Windows MAX_PATH ignored in deep nested installs53- Global `-g` tools causing version skew54- nodemon in production deployment docs55- Public npm package Windows-only without platform check5657## Verification5859- ESLint (felixge-aligned or project config) on changed files60- EditorConfig indent/charset/end_of_line61- `npm install && npm test` (or `npm start` smoke)62- Capsule probes on server PORT and require placement63- Native addon: document/build verify on Windows if `node-gyp` in tree646566## References6768- `awesome-guidelines/references/node-style-learning-note.md`69- `awesome-guidelines/references/node-style-formatting-layout.md`70- `awesome-guidelines/references/node-style-functions-modules.md`71- `awesome-guidelines/references/node-style-conditionals-naming.md`72- `awesome-guidelines/references/node-style-platform-verify.md`7374## Related skills7576- `javascript-coding-practices`, modern const/let, ES modules77- `powershell-scripting-practices`, Windows shell glue adjacent to Node on Windows78- `shell-scripting-practices`, Unix deploy scripts