装公司内部包时报 404 Not Found,请求地址却是 https://registry.npmjs.org/@corp%2futils。日志里能对上时间点,这种反而好排。
带作用域的包没有单独指定源,npm 默认去公共源查找,私有包在那边本来就不存在。这一点先确认清楚,后面就不用反复试。
npm config set @corp:registry https://npm.corp.com/ npm login --registry https://npm.corp.com/ npm install @corp/utils
「私有源作用域」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
处理上按这个顺序:为作用域单独配置 registry;确认已经登录拿到 token;装一次看请求是否走到内网。
结果对不对很好判断,私有包安装成功,配置列表里作用域源指向内网地址。
