使用NP发布JS包时遇登录错误:已登录但npm run np执行失败
解决np发布时提示ENEEDAUTH(需登录yarn registry)的问题
问题场景
我创建了一个传统JS包,引入np管理发布流程,但执行npm run np时弹出权限错误:
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in to https://registry.yarnpkg.com
npm ERR! need auth You need to authorize this machine usingnpm adduser
但我已经完成npm登录,直接执行npm publish能正常发布包。
解决方法
1. 切换npm默认源到官方registry
np可能默认读取了yarn的源配置,先把npm切回官方源:
npm config set registry https://registry.npmjs.org/
执行后用npm config get registry确认是否切换成功。
2. 强制np使用npm执行流程
在项目的package.json里修改np的脚本命令,加上--npm参数,强制用npm而非yarn处理发布:
"scripts": { "np": "np --npm" }
改完再运行npm run np试试。
3. 重置np配置
如果项目里有自定义的np配置文件(比如.np-config.json),直接删除它重置配置,避免残留的yarn相关设置干扰。
4. 重新登录npm确认身份
有时候登录状态可能有缓存问题,重新登录一次:
npm logout npm login
登录时确保使用的是npm官方registry,完成后再尝试发布。
内容的提问来源于stack exchange,提问作者Neosoulink
相关产品推荐
相关产品推荐

