上传包使用的源地址: http://39.104.53.46:8080/repository/npm-host/
下载包使用的源地址: http://39.104.53.46:8080/repository/npm-group/
nexus 中 npm 仓库类型介绍
npm(proxy):代理仓库,用于代理获取 npm 其他源上的包(当此仓库没有相应包时,会从配置的第三方仓库拉取,并缓存到本仓库)
npm(hosted):私有仓库,用于发布个人开发的包
npm(group):组合仓库,对外公开的仓库,集合了 hosted 和 proxy,优先从 hosted 仓库拉取,hosted 仓库没有,再从 proxy 仓库拉取
设置 npm 源的几种方式
开发公司内部私有 npm 包,在发布到 npm 私服前,设置发布的私服地址
// 方式一(推荐)// 通过 nrm 管理切换源
nrm add gfhosted http://39.104.53.46:8080/repository/npm-host/
nrm use gfhosted
// 方式二// 通过 npm 设置全局的源
npm config set registry http://39.104.53.46:8080/repository/npm-host/// 方式三// 在项目根目录下新建 .npmrc 文件,写入以下内容指定源
registry=http://39.104.53.46:8080/repository/npm-host/// 方式四// 在项目的 package.json 文件中,配置 publishConfig 字段,写入以下内容
{
"publishConfig": {
"registry": "http://39.104.53.46:8080/repository/npm-host/"
}
}
其他命令
npm login 登录 npm 源(如有问题,关掉网络代理后重试,npm 官方由于网络问题,可能需要多次尝试)
npm adduser 填写 npm 登录信息(同 npm login)
npm publish 发布包
npm unpublish <pkg> --force 删除包
npm who am i 检测 npm 是否登录(npm 私服不支持此命令,可用 npm 官方账号登录后体验)
参考文档
常见问题
npm publish 时报错 npm ERR! 500 Server Error - PUT http://
Nexus 私服日志提示 Unexpected token VALUE_NULL
原因是 scope 值为空,空指针导致报错
解决办法:在发布时指定 access=publish
通过发布命令指定 npm publish --access=public
在 package.json 中配置 { "publishConfig": { "access": "public" } }