搭建本地NPM仓库后发布自定义库遇ENEEDAUTH认证错误求助
我之前测试本地npm仓库发布包时也碰到过一模一样的问题,给你几个实用的排查和解决步骤:
先确认当前npm的registry和用户状态
首先执行npm config get registry,确保输出的是你的本地仓库地址http://127.0.0.1:5080,如果不是,说明当前registry没切换对,重新执行npm set registry http://127.0.0.1:5080。
接着执行npm whoami,如果返回用户名就说明认证正常;如果报错,那你之前的npm adduser可能没在本地仓库的上下文里生效,试试带registry参数重新执行:npm adduser --registry http://127.0.0.1:5080输入用户名、密码和邮箱的时候,注意这是给local-npm创建的本地用户,和官方npm的账号无关。
清理缓存并重启local-npm服务
local-npm的本地缓存偶尔会出问题,先关掉正在运行的local-npm进程(比如用ps aux | grep local-npm找到进程ID后kill掉),然后删除local-npm的默认存储目录~/.local-npm,再重新启动local-npm服务。
同时清理npm的全局缓存:npm cache clean --force之后重新执行
npm adduser再尝试publish。手动配置认证信息到.npmrc
如果上面的方法都不行,可以手动把认证信息写入.npmrc文件。先执行npm login --registry http://127.0.0.1:5080完成登录,然后打开用户目录下的.npmrc文件(一般在~/.npmrc),你会看到类似这样的行://127.0.0.1:5080/:_authToken=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx把这行复制到你库项目根目录的
.npmrc文件里,同时确保文件里也有registry=http://127.0.0.1:5080/这一行,之后再执行npm publish应该就能正常通过认证了。
内容的提问来源于stack exchange,提问作者Knows Not Much

