Lint package.json files for missing fields, dependency issues, security risks, and best practices violations.
All commands use the bundled Python script at scripts/package_json_linter.py.
bash
python3 scripts/package_json_linter.py lint <file-or-directory> [--strict] [--format text|json|markdown]
Runs all lint rules against one or more package.json files. If given a directory, scans for package.json files recursively (excluding node_modules).
Flags:
--strict — exit code 1 on any warning (not just errors)--format — output format: text (default), json, markdownbash
python3 scripts/package_json_linter.py security <file-or-directory> [--format text|json|markdown]
Checks for supply chain risks: postinstall/ preinstall/ install scripts, and scripts containing curl, wget, eval, or piping to shell.
bash
python3 scripts/package_json_linter.py scripts <file-or-directory> [--format text|json|markdown]
Analyzes the scripts section for missing common scripts ( test, start, build), placeholder test scripts, dependency issues, and deprecated packages.
bash
python3 scripts/package_json_linter.py validate <file-or-directory> [--strict] [--format text|json|markdown]
Validates required fields ( name, version, description), semver format, npm naming rules, dependency issues, and best practice fields.
RuleSeverityDescriptionmissing-nameerrorNo name fieldmissing-versionerrorNo version fieldinvalid-nameerrorName doesn't match npm naming rulesinvalid-versionerrorVersion not valid semvermissing-descriptionwarningNo description field
RuleSeverityDescriptionwildcard-dependencyerrorVersion is *, empty, or latest``git-dependencywarningPoints to git URL (fragile)file-dependencywarningUses file: protocolpinned-dependencyinfoAll deps pinned to exact versionsduplicate-dependencywarningSame package in deps and devDepsdeprecated-packagewarningKnown deprecated package (~20 tracked)
RuleSeverityDescriptionpostinstall-scriptwarningSupply chain riskpreinstall-scriptwarningSupply chain riskinstall-scriptwarningSupply chain risksuspicious-scriptwarningContains curl/wget/eval/pipe-to-shell
RuleSeverityDescriptionmissing-licensewarningNo license fieldmissing-repositoryinfoNo repository fieldmissing-enginesinfoNo engines fieldmissing-keywordsinfoNo keywords fieldmissing-maininfoNo main or exports fieldmissing-scriptsinfoNo scripts sectionnon-https-urlwarningURLs not using HTTPS
0 — no errors found1 — errors found (or warnings in --strict mode)text — human-readable, one issue per line (default)json — structured JSON with summary countsmarkdown — table format for reports and PRs