News

Inspect Composer and NPM Dependency Changes With Whatsdiff

Published
Inspect Composer and NPM Dependency Changes With Whatsdiff image

Whatsdiff is a CLI tool that shows what has changed in your project's dependencies after a composer update or an npm update. After installing whatsdiff globally, you can run various commands, including a TUI mode that quickly visualizes diffs in an organized way.

# Output diffs in the terminal
$ whatsdiff
 
# JSON output
$ whatsdiff --format=json
 
# Markdown output
$ whatsdiff --format=markdown
 
# TUI mode
$ whatsdiff tui
 
# Compare between two tags
whatsdiff between v1.0.0 v2.0.0
 
# From commmit to HEAD
whatsdiff between abc123
Whatsdiff TUI
Whatsdiff TUI

You can see both Composer and NPM package version updates together if you have an updated package lockfile, but I tend to work through them separately:

NPM lockfile updates
NPM lockfile updates

Another neat feature is getting the changelog between versions, which you can use to quickly scan what's changed without browsing through multiple releases:

whatsdiff changelog laravel/framework 12.0.0...12.36.0
Whatsdiff changelog command
Whatsdiff changelog command

Main Features

  • Analyse changes in composer.lock and package-lock.json between commits
  • Read changelog and release notes of updated packages
  • Interactive Terminal UI
  • Multiple output formats (text, JSON, markdown)
  • MCP server to help LLM understand how to upgrade your project dependencies
  • CI/CD integration to check if specific packages have changed

You can get started by visiting the whatsdiff.app documentation.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Cancel In-Flight Form Submissions in Inertia.js v3.7 image

Cancel In-Flight Form Submissions in Inertia.js v3.7

Read article
Laravel Starter Kits Now Ship with Vite+ image

Laravel Starter Kits Now Ship with Vite+

Read article
Pessimistic Locking in Laravel Eloquent with refreshForUpdate() image

Pessimistic Locking in Laravel Eloquent with refreshForUpdate()

Read article
Mask Query Bindings in Laravel Exception Messages image

Mask Query Bindings in Laravel Exception Messages

Read article
whereBinary(): Case-Sensitive MySQL Queries in Laravel image

whereBinary(): Case-Sensitive MySQL Queries in Laravel

Read article
Compile PHP to Native Binaries with TypePHP image

Compile PHP to Native Binaries with TypePHP

Read article