domains / / nestjs/nest
Package dependency configuration
Configure dependencies appropriately in package.json based on usage patterns and requirements. This improves package maintainability, flexibility, and reduces unnecessary dependencies.
Configure dependencies appropriately in package.json based on usage patterns and requirements. This improves package maintainability, flexibility, and reduces unnecessary dependencies.
- Use
peerDependenciesinstead of direct dependencies for libraries that are loaded lazily or optionally used - Add
peerDependenciesMetato mark peer dependencies as optional when appropriate - Use flexible version ranges for stable libraries (e.g.,
">=0.18"or"^0.18.0 || ^0.19.0") - Avoid redundant type packages when libraries include their own TypeScript definitions
Example:
{
"dependencies": {
"required-package": "2.3.1"
},
"peerDependencies": {
"lazily-loaded-package": "^2.0.0",
"optional-package": ">=1.0.0"
},
"peerDependenciesMeta": {
"optional-package": {
"optional": true
}
}
}
This approach ensures that your package properly declares its requirements while maintaining flexibility and avoiding unnecessary dependencies.