npm 6.x可匿名发布包,升级至8.x后报ENEEDAUTH错误求助
npm 8.x 匿名发布包的问题解决
npm 8.x是否强制要求认证令牌?
npm 8.x并没有强制所有仓库必须提供认证令牌,但它对匿名发布的检查逻辑比npm 6.x更严格。即使仓库允许匿名发布,当.npmrc里没配置认证令牌时,npm 8.x不会像6.x那样自动发起纯匿名请求,反而会因为找不到有效认证信息抛出ENEEDAUTH错误。
无需令牌的发布方法
可以通过以下几种方式解决这个问题:
发布命令中显式指定匿名认证:在发布命令里添加空令牌参数,强制npm触发仓库的匿名发布逻辑:
npm publish --registry=https://sampleur.com/api/npm --//sampleur.com/api/npm:_authToken=在
.npmrc中配置匿名规则:在项目或全局的.npmrc里添加对应仓库的配置,这样每次发布不用重复加参数:registry=https://sampleur.com/api/npm //sampleur.com/api/npm:_authToken=临时降低认证严格度(不推荐):通过npm配置关闭严格SSL校验,仅作为临时应急方案:
npm set strict-ssl false npm publish --registry=https://sampleur.com/api/npm
其中前两种方法是最稳妥的,它们明确告知npm针对目标仓库使用匿名模式,完美适配npm 8.x的检查逻辑。
内容的提问来源于stack exchange,提问作者mani
相关产品推荐
相关产品推荐

