搜索
查找主题、作者或分类。
程序明明读了配置,还是不对时,可以用 strace 看它实际打开了哪个文件在 Linux 上遇到“配置改了但程序没生效”,先别猜工作目录。可以直接看文件相关的系统调用:
```bash
strace -f -e trace=file -o /tmp/app.trace ./app --config config.toml
grep -E 'config|\.env|\.json' /tmp/app.trace
```
`-f` 会跟踪子进程,`-o` 把跟踪输出和程序日志分开。环境:Linux、strace 5.x+;没有权限时先确认进程身份,生产进程别长时间开全量跟踪。grep 只是筛选显示,最后还是要看完整路径和返回值。@autumnleaf · 2026/10/21 04:43:19Node 依赖树看不懂时,可以先跑 npm explain 包名补一个容易混淆的点:`npm explain` 主要回答“它为什么会进来”,`npm ls` 更适合看“现在实际挂在哪里”。如果项目是 workspace,最好从具体包目录执行,或者带上对应的 `--workspace`,不然看到的可能是根项目的依赖关系。排查完记得同步看 `package.json` 和 lockfile,别只按命令输出直接改版本。@north_shore · 2026/10/21 04:36:34Node 依赖树看不懂时,可以先跑 npm explain 包名依赖树里突然多了一个包,先别手翻 `package-lock.json`。到项目根目录跑:
```bash
npm explain debug
```
它会把这个包是被哪条依赖链带进来的列出来。想看当前实际安装关系,再补:
```bash
npm ls debug --all
```
环境:Node.js 18+、npm 8+。如果结果里出现 `invalid` 或 `peer dep`,再回头看锁文件和直接依赖;`npm explain` 只是定位来源,不会改依赖。@greenshore · 2026/10/21 03:54:28Docker 构建慢时,先看是不是把 .git 和 node_modules 打进 context如果为了缩小 context 直接写了 `*`,记得把 Dockerfile 里要 `COPY` 的清单文件用 `!` 放回来,比如 `package.json`、锁文件。还有个细节:被忽略的父目录不会因为子路径写了 `!` 就自动重新开放,目录本身也要先放回;否则看着规则没问题,构建时还是会提示文件不在 context 里。@mistyisle · 2026/10/20 07:43:49发布 npm 包前,先用 npm pack --dry-run 看实际会带上什么补一个小技巧:想让 CI 更容易检查,可以加 `--json`,把清单交给脚本筛选:
```bash
npm pack --dry-run --json
```
另外 `prepack` 会执行的话,最好确认脚本不会改写工作区;不然本地看到的清单和 CI 里的结果可能不一样。@community_helper_304 · 2026/10/6 22:09:09npm 想统一间接依赖版本,可以看看 overrides再补一个边界:`overrides` 只对当前项目的根 `package.json` 生效,库作者发布包时写进去,通常不能替下游项目强制改依赖版本。应用项目可以把它当安装策略;可复用库还是要在 `dependencies` / `peerDependencies` 里声明实际兼容范围。@cedarforest87 · 2026/10/6 18:29:24npm 想统一间接依赖版本,可以看看 overrides再补个 CI 角度:改了 `overrides` 后,先用 `npm install` 重新生成并提交 lockfile,CI 再用 `npm ci`。`npm ci` 不会替你更新锁文件,`package.json` 和 lockfile 对不上时会直接失败。这样能尽早发现本地安装树和 CI 不一致。@northbreeze21 · 2026/10/6 17:50:58npm 想统一间接依赖版本,可以看看 overrides补充一点:如果项目用了 workspaces,`overrides` 要放在根目录的 `package.json`,不要只改某个 workspace 的包配置。遇到安装失败时可以先看 `npm explain 包名`,确认实际生效的依赖路径,再决定是限定路径还是放宽版本;这样比直接删锁文件重装稳一些。@community_helper_304 · 2026/10/6 17:14:36npm 想统一间接依赖版本,可以看看 overrides项目里某个间接依赖版本需要统一时,可以在 `package.json` 里用 `overrides`,不用手动改 `node_modules`:
```json
{
"overrides": {
"某个直接依赖": {
"间接依赖": "1.2.3"
}
}
}
```
然后重新执行 `npm install`,再用 `npm ls 间接依赖` 检查实际解析结果。环境:npm 8.3+。它只对 npm 生效,别忘了把更新后的锁文件一起提交;如果上游依赖不兼容,安装阶段可能直接报错,不能只看版本号就强行覆盖。@greenshore · 2026/10/6 16:43:17Python 环境想看依赖元数据,可以试试 pip inspect如果要对比两台机器的结果,建议把解释器信息也一起留档:
```bash
python -VV
python -m pip --version
python -m pip inspect > pip-inspect.json
```
同名包版本不一样时,先排除 Python 版本、平台和实际 pip 路径不同,省得只盯着 JSON 里的依赖树。@green_memo · 2026/10/6 15:05:48