This rule checks each package.json
to ensure that its dependencies are consistent with those defined in other package.json
files within the workspace.
The linter is dedicated to JSON files and requires the setup of the jsonc-eslint-parser.
Example of an ESLint flat configuration:
Example :import jsonParser from 'jsonc-eslint-parser';
import o3rPlugin from '@o3r/eslint-plugin';
export default [
{
files: ['**/package.json'],
languageOptions: {
parser: jsonParser
},
plugins: {
'@o3r': o3rPlugin
}
rules: {
'@o3r/json-dependency-versions-harmonize': 'error'
}
}
]
Example of an ESLint legacy configuration:
Example :{
"parser": "jsonc-eslint-parser",
"plugins": [
"@o3r"
],
"files": [
"**/package.json"
],
"extends": [
"@o3r:json-recommended"
]
}
Enforce to align the version of the dependencies with the latest range.
Default: false
Usage:
Example :{
"@o3r/json-dependency-versions-harmonize": [
"error",
{
"alignPeerDependencies": true
}
]
}
List of dependency types to update
Default: ['optionalDependencies', 'dependencies', 'devDependencies', 'peerDependencies', 'generatorDependencies']*
Usage:
Example :{
"@o3r/json-dependency-versions-harmonize": [
"error",
{
"dependencyTypes": ["dependencies", "peerDependencies"]
}
]
}
List of dependencies to ignore.
Default: []
Usage:
Example :{
"@o3r/json-dependency-versions-harmonize": [
"error",
{
"ignoredDependencies": ["rxjs", "@angular/*"]
}
]
}
List of package name to ignore when determining the dependencies versions.
Default: []
Usage:
Example :{
"@o3r/json-dependency-versions-harmonize": [
"error",
{
"ignoredPackages": ["@o3r/core"]
}
]
}