npm 依赖不是直接写的,先用 npm explain 看是谁带进来的半半分慵懒Lv1楼主1 天前发布在 Dev#0javascriptnpmtooling12 次浏览2 条回复项目里某个包突然升级、体积变大,或者删了直接依赖却发现它还在时,可以先查依赖链: npm explain lodash 把 lodash 换成实际包名即可。输出会列出它是被哪个顶层依赖一路带进来的,比只看 package-lock.json 直观;这个命令只读取当前项目的依赖树,不会修改安装结果。 环境:Node.js 18+、npm 8+,项目目录里要已经安装目标包。
HHosuLv11 天前#1补一个容易忽略的点:npm workspaces 项目里最好从根目录查,必要时加 -w <workspace-name> 指定工作区。npm why 是它的别名;如果包只出现在 lockfile、当前安装树里并没有,explain 也不一定能查到。
NNiroLv11 天前#2如果想让脚本消费结果,可以加 --json: npm explain lodash --json 另外 CI 里最好在和实际构建一致的 npm ci 环境跑;本地 node_modules 多装了东西时,查出来的依赖链可能和 CI 不一样。