<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pnpm-10-30-ken6cjxq8" -->

---
title: pnpm 10.30 | daily.dev
description: pnpm 10.30 reworks the pnpm why command to display a reverse dependency tree, placing the searched package at the root with its dependents branching back to...
canonical: https://daily.dev/posts/pnpm-10-30-ken6cjxq8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: pnpm 10.30 | daily.dev
og:description: pnpm 10.30 reworks the pnpm why command to display a reverse dependency tree, placing the searched package at the root with its dependents branching back to...
og:url: https://daily.dev/posts/pnpm-10-30-ken6cjxq8
og:image: https://api.daily.dev/og/posts/kEN6CjXq8.png
og:image:alt: pnpm 10.30
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# pnpm 10.30

**[Fast, disk space efficient package manager \| pnpm](https://daily.dev/sources/pnpm-blog)** · 1 min read · 0 upvotes · 0 comments

## Summary

pnpm 10.30 reworks the pnpm why command to display a reverse dependency tree, placing the searched package at the root with its dependents branching back to workspace roots, replacing the older forward-tree view that was noisy for deeply nested dependencies. This release also optimizes pnpm why and pnpm list performance in workspaces with many importers by sharing the dependency graph and materialization cache across importers instead of rebuilding it for each one.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pnpm.io/blog/releases/10.30>

## Questions this post answers

### How does pnpm why display dependency information starting from version 10.30?

Starting with pnpm 10.30, the pnpm why command shows a reverse dependency tree instead of the previous forward-tree output. The searched package appears at the root, with its dependents shown as branches walking back to the workspace roots, which makes it easier to trace why a package ended up installed in deeply nested dependency graphs.

_Developers tracking pnpm cli changes across releases can follow updates like this on daily.dev._

### Why is pnpm why slow in large monorepos and how was it optimized in pnpm 10.30?

In pnpm 10.30, pnpm why and pnpm list were slow in workspaces with many importers because the dependency graph and materialization cache were rebuilt independently for each importer. The fix shares the dependency graph and materialization cache across all importers, cutting redundant work and improving performance in large monorepos.

_Teams optimizing monorepo tooling performance can keep tabs on pnpm updates via daily.dev._

## Similar posts on daily.dev

- [pnpm 11.28.5](https://daily.dev/posts/pnpm-11-28-5-cwufxwdeo) · Fast, disk space efficient package manager \| pnpm · 4 upvotes · 0 comments
- [pnpm 11.23](https://daily.dev/posts/pnpm-11-23-migxmswxe) · Fast, disk space efficient package manager \| pnpm · 3 upvotes · 0 comments
- [pnpm 11 cuts the npm umbilical cord](https://daily.dev/posts/pnpm-11-cuts-the-npm-umbilical-cord-vhucinbuf) · Bytes by ui.dev · 50 upvotes · 5 comments
- [pnpm 12.10.0](https://daily.dev/posts/pnpm-12-10-0-1jmwtjsma) · Fast, disk space efficient package manager \| pnpm · 6 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#javascript](https://daily.dev/tags/javascript), [#pnpm](https://daily.dev/tags/pnpm)

[View this post on daily.dev](https://daily.dev/posts/pnpm-10-30-ken6cjxq8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"pnpm 10.30","url":"https://daily.dev/posts/pnpm-10-30-ken6cjxq8","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pnpm-10-30-ken6cjxq8"},"datePublished":"2026-08-23T12:17:33.578Z","dateModified":"2026-08-23T12:20:50.922Z","description":"pnpm 10.30 reworks the pnpm why command to display a reverse dependency tree, placing the searched package at the root with its dependents branching back to...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/63763758f3e74381d631e88f7667e808?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/63763758f3e74381d631e88f7667e808?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Fast, disk space efficient package manager | pnpm","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Fast, disk space efficient package manager | pnpm","logo":"https://media.daily.dev/image/upload/s--JKuzGOiX--/f_auto,q_auto/v1787487440/logos/pnpm-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/pnpm-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pnpm-10-30-ken6cjxq8","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,javascript,pnpm","timeRequired":"PT1M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Fast, disk space efficient package manager | pnpm","item":"https://daily.dev/sources/pnpm-blog"},{"@type":"ListItem","position":3,"name":"pnpm 10.30"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pnpm-10-30-ken6cjxq8#faq","mainEntity":[{"@type":"Question","name":"How does pnpm why display dependency information starting from version 10.30?","acceptedAnswer":{"@type":"Answer","text":"Starting with pnpm 10.30, the pnpm why command shows a reverse dependency tree instead of the previous forward-tree output. The searched package appears at the root, with its dependents shown as branches walking back to the workspace roots, which makes it easier to trace why a package ended up installed in deeply nested dependency graphs. Developers tracking pnpm cli changes across releases can follow updates like this on daily.dev."}},{"@type":"Question","name":"Why is pnpm why slow in large monorepos and how was it optimized in pnpm 10.30?","acceptedAnswer":{"@type":"Answer","text":"In pnpm 10.30, pnpm why and pnpm list were slow in workspaces with many importers because the dependency graph and materialization cache were rebuilt independently for each importer. The fix shares the dependency graph and materialization cache across all importers, cutting redundant work and improving performance in large monorepos. Teams optimizing monorepo tooling performance can keep tabs on pnpm updates via daily.dev."}}]}
```

