如何将NPM包发布至NPM官方仓库而非GitHub仓库?
解决npm包发布到官方仓库而非GitHub仓库的问题
问题背景
我创建了一个npm包,能成功发布到GitHub仓库,但无法发布到npm官方仓库。尝试过登录npm、执行npm publish --access=public,也移除了package.json中指向GitHub的publishConfig配置,甚至现在package.json里已经配置了指向官方仓库的publishConfig,但发布时输出仍显示Publishing to https://npm.pkg.github.com/。
排查与解决步骤
1. 检查并修正全局npm registry配置
运行以下命令查看当前全局registry:
npm config get registry
如果返回的不是https://registry.npmjs.org/,执行以下命令设置为官方仓库:
npm config set registry https://registry.npmjs.org/
2. 确认登录的是npm官方账号
先查看当前登录的账号:
npm whoami
如果显示的是GitHub用户名,说明登录的是GitHub的npm仓库,需要先退出再重新登录官方:
npm logout npm login
执行npm login时,输入npm官方的账号、密码和邮箱。
3. 发布时强制指定官方registry
如果上述配置仍有问题,发布时直接指定官方仓库地址,绕过本地配置干扰:
npm publish --access=public --registry=https://registry.npmjs.org/
4. 检查项目本地的.npmrc文件
项目根目录下如果存在.npmrc文件,可能配置了scope级别的registry(比如针对@fyndreact组织),例如:
@fyndreact:registry=https://npm.pkg.github.com/
如果有这个配置,要么删除该行,要么修改为官方仓库地址:
@fyndreact:registry=https://registry.npmjs.org/
5. 验证package.json配置
你的package.json中publishConfig配置是正确的:
"publishConfig": { "registry": "https://registry.npmjs.org/", "access": "public" }
确保没有其他地方的配置覆盖了这个设置。
内容的提问来源于stack exchange,提问作者Aadesh Kulkarni
相关产品推荐
相关产品推荐

