为什么 pnpm 安装的包在 npm registry 上找不到?
我用 pnpm 装一个叫 @myorg/utils 的包,提示 404 找不到,但同事用 npm 就能装上。是不是 pnpm 默认不走 npm registry?我试过加 –registry 参数也不行。
本地 .npmrc 里也没配私有源,应该就是走官方源。奇怪的是,这个包在 npmjs.com 上确实搜不到,但同事说他们团队发布了到私有 registry,可我没改过配置啊……
.btn {
background: var(--primary-color);
padding: 8px 16px;
border-radius: 4px;
}
.npmrc文件看起来没有配置私有源,但 pnpm 有自己的配置文件pnpm-workspace.yaml或者.npmrc文件,它可能包含了不同的 registry 配置。首先,检查一下你的项目根目录下是否有
pnpm-workspace.yaml文件,或者项目内的.npmrc文件。这些文件可能会覆盖全局的.npmrc配置。接下来,确保你当前使用的
.npmrc文件确实是全局的,而不是某个项目的局部配置。你可以通过以下命令查看 npm 当前使用的.npmrc文件路径:然后,检查这个文件,看看是否有针对
@myorg命名空间的特定 registry 配置。配置可能类似于这样:如果发现有这种配置,你需要确认是否应该使用这个私有 registry。如果没有找到这样的配置,而你的同事确实使用了私有 registry,那么可能是你的环境配置遗漏了某些东西。
为了排除配置文件的问题,你可以尝试临时指定 registry 来安装包,命令如下:
这行命令会强制 pnpm 使用 npm 的官方 registry 来查找和安装包。如果这样可以成功安装,说明之前的 registry 配置有问题。
最后,确保你的 npm 和 pnpm 都是最新版本,旧版本可能存在一些已知的问题或 bug。可以通过以下命令更新它们:
更新之后再尝试安装包,有时候版本不匹配也会导致奇怪的问题。
希望这些步骤能帮助你找到并解决这个问题。有时候开发环境的问题真是让人头大,但一步步排查总能找到答案的。