Package Compatibility Checker
Check if your npm packages are compatible with your target Node.js version. Find ESM-only packages and get suggestions for version downgrades.
Paste Your package.json
Why Check Package Compatibility?
Many popular npm packages have dropped support for older Node.js versions, especially when migrating to ES Modules (ESM). This tool helps you identify potential compatibility issues before upgrading or deploying.
Common Compatibility Issues
ESM-Only Packages
Since 2021, many packages have migrated to ESM-only, dropping CommonJS support. Popular packages like chalk, ora, got,execa, and node-fetch now require Node.js 14+ and ES Module support.
Node.js Version Requirements
Many packages specify minimum Node.js versions in their engines field. Common breaking points include:
- Node.js 12: Native ESM support begins
- Node.js 14: Most ESM-only packages require this
- Node.js 16: Full ESM feature set
- Node.js 18: Current LTS, best compatibility
What to Do About Incompatible Packages
- Upgrade Node.js: The easiest solution is often to upgrade to a newer Node.js LTS version (18 or 20).
- Use older package versions: Check if an older major version supports your Node.js version (e.g.,
chalk@4instead ofchalk@5). - Find alternatives: Some packages have CJS-compatible alternatives.
- Use dynamic imports: For ESM-only packages in CommonJS projects, use
await import('package')instead ofrequire().
LTS Schedule
Node.js follows a predictable LTS schedule. Even-numbered versions become LTS:
- Node.js 18: LTS until April 2025
- Node.js 20: LTS until April 2026
- Node.js 22: LTS until April 2027