synopkg
Version:
Consistent dependency versions in large JavaScript Monorepos
50 lines (31 loc) • 1.42 kB
text/mdx
title: Dependency Types
slug: dependency-types
import DefaultDependencyTypes from "@partials/default-dependency-types.mdx";
Dependency types refer to the different locations in package.json files where dependencies can be defined.
## Default Values
The default dependency types in synopkg are the ones defined by npm, pnpm, and yarn:
<DefaultDependencyTypes />
## Custom Values
You can extend the above list by defining your own [custom types](CONFIG_CUSTOM_TYPES), such as:
- Engine versions (`engines`)
- Package manager versions (`packageManager`)
- Any other nested property in package.json
## Using Dependency Types
Dependency types can be specified in these contexts:
### Command Line Filtering
Use the `--dependency-types` option to target specific types in commands:
```bash
# Only check production dependencies
synopkg lint --dependency-types prod
# Check both production and development dependencies
synopkg lint --dependency-types prod,dev
# Check everything except peer dependencies
synopkg lint --dependency-types '!peer'
```
### Configuration
Dependency types can be used to target and filter:
1. [Version Groups](CONFIG_VERSION_GROUPS) - Carve out specific version policies
2. [Semver Groups](CONFIG_SEMVER_GROUPS) - Define which semver ranges to use with specific dependencies
3. [Dependency Groups](CONFIG_DEPENDENCY_GROUPS) - Merge and alias families of dependencies as one