排查 node_modules 里某个包为什么会出现时,pnpm why 比直接翻 lockfile 省点眼睛。
环境:Node.js 18+,pnpm 8+。可以在临时目录试一下:
mkdir pnpm-why-demo && cd pnpm-why-demo
pnpm init
pnpm add vite @vitejs/plugin-react
pnpm why esbuild
输出会列出 esbuild 是被哪些依赖链带进来的,也能看到当前解析到的版本。想看开发依赖里的来源,默认也会一起显示;如果仓库比较大,可以加包名精确查,不要直接扫一整页 lockfile。
这个命令只读取依赖图,不会改 package.json 或 lockfile。升级依赖前发现某个包版本不对,先跑一下挺顺手。