Nodemon JSON configuration templates and validation logic for development server hot-reload. Includes 5 required standards (watch patterns, exec command, ignore patterns, development settings, required dependencies). Use when creating or auditing nodemon.json files to enable automatic server restart on file changes.
Provides nodemon.json templates and validation for automatic server restart on file changes. Triggers when creating or auditing nodemon.json files to validate watch patterns, exec commands, ignore patterns, development settings, and required dependencies against 5 standards.
/plugin marketplace add metasaver/claude-marketplace/plugin install core-claude-plugin@metasaver-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
templates/nodemon-javascript.template.jsontemplates/nodemon-typescript.template.jsonThis skill provides nodemon.json templates and validation logic for development server hot-reload configuration.
Manage nodemon.json configuration to:
This skill is invoked by the nodemon-agent when:
Standard templates are located at:
templates/nodemon-typescript.template.json # TypeScript projects (ts-node)
templates/nodemon-javascript.template.json # JavaScript projects (node)
Watch the source directory and specify file extensions:
{
"watch": ["src"],
"ext": "ts,js,json"
}
For TypeScript projects:
ts,js,jsonFor JavaScript projects:
js,jsonValidation:
# Check watch patterns
jq '.watch | contains(["src"])' nodemon.json
jq '.ext' nodemon.json | grep -q "ts\|js"
Execute with appropriate runtime:
TypeScript projects:
{
"exec": "ts-node src/index.ts"
}
JavaScript projects:
{
"exec": "node src/index.js"
}
Compiled projects:
{
"exec": "node dist/index.js"
}
Validation:
# Check exec command exists
jq '.exec' nodemon.json
# Verify matches project type
if grep -q "typescript" package.json; then
jq '.exec' nodemon.json | grep -q "ts-node" || echo "VIOLATION: TypeScript project should use ts-node"
fi
Prevent restart loops by ignoring:
{
"ignore": [
"node_modules/**",
"dist/**",
"**/*.test.ts",
"**/*.spec.ts",
".git/**"
]
}
For JavaScript projects:
{
"ignore": [
"node_modules/**",
"dist/**",
"**/*.test.js",
"**/*.spec.js",
".git/**"
]
}
Required patterns:
node_modules/** (always)dist/** (always).test.ts, .spec.ts, or .test.js, .spec.js).git/** (always)Validation:
# Check all required ignore patterns
jq '.ignore | contains(["node_modules/**"])' nodemon.json
jq '.ignore | contains(["dist/**"])' nodemon.json
jq '.ignore | contains([".git/**"])' nodemon.json
jq '.ignore | map(select(test("test|spec"))) | length > 0' nodemon.json
Configure performance and environment:
{
"verbose": false,
"delay": 1000,
"env": {
"NODE_ENV": "development"
}
}
Settings explained:
verbose: false - Reduces console noisedelay: 1000 - Prevents multiple rapid restarts (1 second delay)NODE_ENV: "development" - Sets development modeValidation:
# Check delay setting
jq '.delay' nodemon.json | grep -q "1000" || echo "VIOLATION: Missing or incorrect delay"
# Check NODE_ENV
jq '.env.NODE_ENV' nodemon.json | grep -q "development" || echo "VIOLATION: Missing NODE_ENV"
Package.json must include:
TypeScript projects:
{
"devDependencies": {
"nodemon": "^3.0.0",
"ts-node": "^10.9.0"
}
}
JavaScript projects:
{
"devDependencies": {
"nodemon": "^3.0.0"
}
}
Required npm script:
{
"scripts": {
"dev": "nodemon"
}
}
Validation:
# Check dependencies
jq '.devDependencies | has("nodemon")' package.json
# If TypeScript project
if [ -f "tsconfig.json" ]; then
jq '.devDependencies | has("ts-node")' package.json || echo "VIOLATION: Missing ts-node"
fi
# Check dev script
jq '.scripts.dev' package.json | grep -q "nodemon" || echo "VIOLATION: Missing dev script"
To validate nodemon.json configuration:
# Check if nodemon.json exists (skip if not present - it's optional)
if [ ! -f "nodemon.json" ]; then
echo "ℹ️ nodemon.json not present (optional)"
exit 0
fi
# Rule 1: Watch patterns
jq '.watch | contains(["src"])' nodemon.json || echo "VIOLATION: watch must include 'src'"
jq '.ext' nodemon.json | grep -q "js" || echo "VIOLATION: ext must include 'js'"
# Rule 2: Exec command
jq '.exec' nodemon.json > /dev/null || echo "VIOLATION: Missing exec command"
# Rule 3: Ignore patterns
for pattern in "node_modules/**" "dist/**" ".git/**"; do
jq ".ignore | contains([\"$pattern\"])" nodemon.json | grep -q "true" || echo "VIOLATION: Missing ignore pattern: $pattern"
done
# Rule 4: Development settings
jq '.delay' nodemon.json > /dev/null || echo "VIOLATION: Missing delay setting"
jq '.env.NODE_ENV' nodemon.json | grep -q "development" || echo "VIOLATION: Missing NODE_ENV"
# Rule 5: Dependencies
jq '.devDependencies | has("nodemon")' package.json | grep -q "true" || echo "VIOLATION: Missing nodemon in devDependencies"
jq '.scripts.dev' package.json | grep -q "nodemon" || echo "VIOLATION: Missing dev script"
This skill integrates with:
scope parameter. If not provided, use /skill scope-check/skill audit-workflow - Bi-directional comparison workflow/skill remediation-options - Conform/Update/Ignore choicestypescript-agent - For TypeScript project detectionpackage-scripts-agent - For dev script validation