The problem: When installing related packages, one package might rely the other to have a compatible API, module directory structure and/or configuration. However, quite often related packages are developed by separate owners or teams. As a package evolves, APIs are improved and dependent packages need to be updated to stay compatible, otherwise they would break. A solution is to specify in the dependent package, the compatible versions of related packages. This is done by specifying compatible version of related packages in package.json file under peerDependencies. For example the react-dom package would specify the compatible version of react under peerDependencies.
The compatible version of related packages used to be installed by default when using NPM. However, Starting from NPM version 3, compatible versions of peer dependencies are not installed by default. Rather, the latest version of the target package is installed. This requires additional effort from developers.
Detecting this problem: Quite often developers run npm i
command without
checking installation outputs. If you are
the exception,
You will notice the UNMET PEER DEPENDENCY message when the latest version of your
package
is installed, but is not compatible with another package you installed earlier. You usually don't want
to upgrade the
first package. For example if you use a specific version of webpack you do not want to be
forced to
upgrade version just to use webpack-cli. Instead you want to know which is the most relevant
version of webpack-cli for you current version of webpack.
If you ever faced these issues mentioned above, this tool comes to help. Simply add your main package name, main package version and peer dependency package name to get a list of possible version.
Thank for using our tool. Hope you find it useful.