npm publish项目报错

本文介绍了npm publish的步骤,包括通过命令行和官网注册npm账号,强调注册后需在官网登录并绑定邮箱验证账号才生效。还指出若安装了淘宝镜像,发布前要先卸载并替换为原来的镜像,同时要注意项目大小写和package.json中author与登录账号一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm bulish步骤如下:

1,npm adduser(注册npm账号)

方式一:在npm命令行输入npm adduser创建npm账号

              打开控制台 输入npm adduser进行登录npm login

               npm账号注册显示成功(Logged in as maxiaorong on http://registry.npmjs.org/.

               npm login登陆验证是否注册成功,登陆后npm who am i验证当前登录的是否为登录npm用户

注意使用方式一注册的npm账号,不一定成功,在后续npm publish的时候会报错如下:

   npm ERR! publish Failed PUT 404

   npm ERR! 404 You should bug the author to publish it (or use the name yourself!)

方式二:直接在npm官网注册:https://www.npmjs.com/

2,npm adduser/或者npm官网注册完成,再次npm publish还会出错如下:

npm ERR! publish Failed PUT 403

npm ERR! code E403
npm ERR! you must verify your email before publishing a new package: https://www.npmjs.com/email-edit : npmnodetest

注意:在我们注册npm账号之后,在npm publish项目发布之前,要在npm官网:https://www.npmjs.com/,登录并且在绑定的邮箱进行绑定验证之后,npm账号才可生效。

3,在我们注册完成npm账号后,再次npm publish,如果我们安装了淘宝镜像,要先把镜像先卸载了

您首先执行下 npm adduser ,输入您相应的 Username  Password  Email: (this IS public) ,关键的一步来了!

Logged in as 您的Username on https://registry.npmjs.org/.

如果 on 后面不是 https://registry.npmjs.org/ ,而是其他的镜像,比如我们大家常见的淘宝镜像:

http://registry.npm.taobao.org/

那么您首先替换成原来的,替换成原来执行如下命令:

npm config set registry https://registry.npmjs.org/

最后,替换完毕再执行 npm adduser  npm publish ,这样应该就ok了!

检测是否按照淘宝镜像的方法:npm config get registry 

或者在命令行中输入: cnpm help / cnpm XX 检测是否用cnpm 环境

注意项目的大小写(建议小写),package.json中的author要和登录npm账号的一致,不然会报错

npm ERR! You do not have permission to publish "nodenpm". Are you logged in as the correct user? : nodenpm

最终不负努力:(成功 ^^ )

C:\Users\mxlmac\Desktop\npmnodetest>npm publish
+ npmnodetest@0.3.6

 

            

 

### 关于npm publish向Nexus私服推送时出现E500错误的解决方案 当执行 `npm publish` 命令尝试将包推送到Nexus私服时,如果遇到E500错误,通常表明服务器端发生了内部错误。这种错误可能由多种原因引起,包括但不限于配置问题、权限不足或Nexus仓库本身的异常状态。 以下是可能导致此问题的原因以及对应的解决方法: #### 1. 验证`.npmrc`文件中的认证信息 确保本地项目的 `.npmrc` 文件中包含了正确的认证信息。例如: ```properties //your-nexus-repo-url/:_authToken=YOUR_BASE64_ENCODED_TOKEN registry=http://your-nexus-repo-url/repository/npm-hosted/ email=you@example.com always-auth=true ``` 其中 `_authToken` 是通过用户名和密码生成的Base64编码字符串[^1]。可以通过以下命令生成并设置该令牌: ```bash echo -n 'username:password' | base64 ``` #### 2. 检查Nexus仓库的状态 E500错误通常是由于Nexus私服本身出现问题引起的。可以登录到Nexus管理界面,查看日志文件以获取更多关于错误的具体细节。常见的触发因素包括磁盘空间不足、数据库连接失败或其他服务中断情况[^1]。 #### 3. 权限验证 确认当前用于发布包的用户是否具有足够的权限来上传新版本的软件包至目标存储库。如果没有适当的角色分配,则即使提供了正确的凭证也可能无法完成操作[^1]。 #### 4. 清理缓存重试 有时客户端缓存可能会干扰正常的请求过程。运行下面这条指令清除旧数据后再做一次publish试试看效果如何: ```bash npm cache clean --force ``` #### 5. 更新依赖项与工具链 保持使用的Node.js版本及关联插件处于最新稳定版有助于减少兼容性方面引发的技术难题。另外也要记得升级全局安装过的npm cli程序因为它里面也包含了一些修复过的关键补丁. --- ### 示例代码片段展示如何创建token并写入.npmrc 假设我们有一个名为testUser 的账户其明文密码为 testPasswd ,那么我们可以这样构建我们的 .npmrc : ```bash # Generate Base64 encoded string from username and password combination. AUTH_STRING=$(echo -n 'testUser:testPasswd' | base64) cat <<EOF >> ~/.npmrc @scope:registry=https://nexus.example.org/repository/npm-private/ //nexus.example.org/repository/npm-private/_auth=${AUTH_STRING} //nexus.example.org/repository/npm-private/always-auth=true EOF ``` 以上脚本会自动追加必要的条目进入用户的主目录下的隐藏文件夹内的 .npmrc 中去支持后续针对特定范围(@scope)下制品发布的身份校验需求.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值