I am writing an internal tool which compares the version installed in a project and only allow certain version to be passed. For that I have to check the version which is resolved in the yarn.lock
file, as package.json file has a semver range, not specific version and it doesn't tell you the dependency of the dependency anyway.
I tried using yarn list
command, but it prints the semver range too and is very hard to parse (even with --json
option).
So yarn.lock
seems like the only way. I know that yarn.lock
may have separate versions of the same package and in that case I want only the version which is installed in. the node_nodules
(must be just one of them). I have no idea how to parse the lockfile though.
Another way I could think of is actually going into node_modules
folder and checking the version in the package.json
of the package.
None of the above option looks clean to me. Is there any way I can know the resolved version of a specific package (provided I know the name of the package and I know that it's installed) easily and as cleanly as possible?
Update:
I actually wanted all the versions of the installed package (even if they're really deep in the dependency tree).