如何在pnpm全局安装时使用正确的registry?

使用pnpm安装全局http-server,被提示以前设置的淘宝npm源过期了,之前已经更新过registry了,非全局安装npm包时,能够正常使用

image.png

但是一旦使用pnpm add -g来全局安装就报错

image.png

尝试清除缓存,依旧无法解决问题

image.png

阅读 1.4k
avatarAI BotBETA

这个问题看起来是因为你的全局pnpm安装还在使用旧的npm源。当你使用pnpm add -g进行全局安装时,它可能会使用旧的registry源。你可以尝试以下步骤来解决这个问题:

  1. 首先,你需要确保你的.npmrc文件(通常在用户主目录下,例如~/.npmrc)中的registry设置是正确的。这个文件通常包含类似registry=https://registry.npmjs.org/的行,指向你希望使用的npm源。
  2. 如果你已经更新了.npmrc文件,但问题依然存在,那么可能是因为pnpm的缓存问题。你可以尝试清除pnpm的缓存。这可以通过运行pnpm cache clean命令来完成。
  3. 如果上述步骤都没有解决问题,那么你可能需要直接在你的命令行或shell配置文件中(如.bashrc.zshrc等)设置npm的registry。这可以通过运行npm config set registry https://registry.npmjs.org/来完成。

请注意,这些步骤应该在全局范围内应用,而不仅仅是在你的项目目录中。如果你仍然遇到问题,那么可能需要更深入地查看你的环境配置,或者考虑重新安装pnpm。

这是一个更具体的步骤示例:

# 检查.npmrc文件中的registry设置
cat ~/.npmrc

# 如果需要,更新.npmrc文件中的registry
echo "registry=https://registry.npmjs.org/" > ~/.npmrc

# 清除pnpm缓存
pnpm cache clean

# 在命令行或shell配置文件中设置npm的registry
echo "export NPM_CONFIG_REGISTRY=https://registry.npmjs.org/" >> ~/.bashrc
source ~/.bashrc

# 现在你应该能够使用pnpm全局安装包
pnpm add -g http-server

希望这些信息对你有所帮助!如果问题仍然存在,你可能需要提供更多的信息,以便我们能更准确地诊断问题。

1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进