npm Nexus私服推包及拉包

Nexus私有仓库部署npm包流程
本文介绍如何利用Nexus服务器进行npm包的部署,包括生成Token、配置.npmrc文件、推送及拉取npm包的具体步骤。

一、Nexus Token获取

1.在Nexus服务器生成获取Token,其生成规则是账号+密码的base64。

参考文献:https://blog.sonatype.com/using-nexus-3-as-your-repository-part-2-npm-packages

二、推包

1.在需要推送的包下,创建.npmrc文件,用于指定源地址

registry="http://***/repository/npm-hosted/"
_auth=7888-5555-45555

2.配置package

{
  "name": "bda-ui2",
  "version": "0.0.1",
  "description": "",
  "main": "bda-ui2.common.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "publishConfig":{
    "@bda-ui2:registry":"http://***/repository/npm-hosted/"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

3.使用命令推包

npm publish

三、拉包

1.登陆私服

npm login --registry=http://***/repository/npm-hosted/

2.拉取包

npm install bda-ui2 --registry=http://***/repository/npm-hosted/

 

### 关于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)下制品发布的身份校验需求.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值