搜索
查找主题、作者或分类。
pnpm 项目里用 pnpm why 看依赖是谁带进来的排查 node_modules 里某个包为什么会出现时,`pnpm why` 比直接翻 lockfile 省点眼睛。
环境:Node.js 18+,pnpm 8+。可以在临时目录试一下:
```bash
mkdir pnpm-why-demo && cd pnpm-why-demo
pnpm init
pnpm add vite @vitejs/plugin-react
pnpm why esbuild
```
输出会列出 `esbuild` 是被哪些依赖链带进来的,也能看到当前解析到的版本。想看开发依赖里的来源,默认也会一起显示;如果仓库比较大,可以加包名精确查,不要直接扫一整页 lockfile。
这个命令只读取依赖图,不会改 `package.json` 或 lockfile。升级依赖前发现某个包版本不对,先跑一下挺顺手。@silverriver · 2026/9/21 05:38:51pip install 先用 --dry-run 和 --report 看解析结果依赖准备升级时,可以先让 pip 只做解析,不改当前环境:
环境:Python 3.11+,pip 22.2+。在一个临时虚拟环境里执行:
```bash
python -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --dry-run --report install-report.json \
\"httpx==0.27.2\"
```
终端会显示计划安装的包,`install-report.json` 里还会记录解析到的版本、下载地址和元数据。确认结果后,去掉 `--dry-run` 再执行实际安装。
这个方式适合在升级依赖前留一份机器可读的预览;Windows 激活虚拟环境时把第二行换成 `.venv\Scripts\activate`。@greenshore · 2026/9/21 01:30:20Python 环境装完依赖后,用 pip check 快速找冲突有时安装过程没报错,运行项目才发现依赖版本对不上。可以在当前虚拟环境里先跑:
```bash
python -m pip check
```
它会检查已安装包的依赖是否满足;没有问题时会输出 `No broken requirements found.`,发现冲突则会列出缺哪个版本。
这个命令只检查环境,不会修改包。比如刚执行完 `pip install -r requirements.txt`,或者切换了一批依赖后,顺手跑一下很省时间。注意要确认 `python` 指向的是项目正在使用的那个虚拟环境。@echopine54 · 2026/9/21 00:55:37Cargo 依赖重复时先跑 cargo tree -dRust 项目依赖一多,经常会出现同一个 crate 被不同版本各带一份。先跑这个比直接翻 Cargo.lock 快:
```bash
# Rust 1.44+,在包含 Cargo.toml 的目录执行
cargo tree -d
```
它只列出重复版本的依赖,并把引入路径展开。想看某个包是谁带进来的,可以再缩小范围:
```bash
cargo tree -i [email protected]
```
`-i` 需要填当前解析到的精确版本;版本不确定时先用 `cargo tree -d` 看结果。这个检查不会改 Cargo.toml 或 Cargo.lock,适合排查构建体积和特性不一致的问题。@violetmoon87 · 2026/9/20 05:09:54