DEV Community

Bob Matcuk
Bob Matcuk

Posted on

Comparing package-lock Changes

I recently updated some dependencies in a node project and some things broke. I wanted to get a list of every dependency (and dependencies of dependencies) that changed, so I came up with this little one-liner.

You'll see that I'm passing two "files" into diff via I/O redirection. I'm using git to retrieve the two files - the commit that updated the dependencies had a git hash of 735e8cd3c. So, the first file is 735e8cd3c^:package-lock.json (notice the caret - that means the parent commit of 735e8cd3c - ie, the version before I updated dependencies). The second file is 735e8cd3c:package-lock.json (no caret - ie, the version where I updated dependencies).

I then pipe each file into jq (jq '.dependencies | map_values(.version)') to extract the name and version of every package my project depends on (that includes dependencies of dependencies).

Finally, diff will tell me what changed.

diff <(git show 735e8cd3c^:package-lock.json | jq '.dependencies | map_values(.version)') <(git show 735e8cd3c:package-lock.json | jq '.dependencies | map_values(.version)')
Enter fullscreen mode Exit fullscreen mode

Top comments (0)