Nexus 上发布 npm 包

Flying
2017-07-05 / 0 评论 / 171 阅读 / 正在检测是否收录...

最近在着手整理一些平常写的 Vue UI 组件,我们一般习惯 Vue CLI SPA 开发方式,所以要在不同项目之间公用这些组件就很麻烦。要是将这些组件做成一个组件库工程,发布到 npmjs 官网就可以通过 npm 命令方便拉取了。但我担子再大也不敢将公司的代码上传外网吧。得托管到公司的私有仓库。我知道的 npm 私有仓库有 cnmp。后来后端同学推荐我试一试 nexus。因为公司已经搭建好 Nexus,只需开放 npm 包托管功能就行了。

一 . 在 Nexus 中新建一个 repository

打开 nexus,登录以后,按照下图操作

create-repository.jpg

二 . 选择 npm (hosted)

npm-hosted.jpg

三 . 填写 repository 相关信息

  1. 这里的 Blob store 选择为 npm 专属的,没有需要在 Blob Stores 新建
  2. Hosted 选择:Allow redeploy
  3. 重新查看配置如下:

fill.jpg

四 . 查看配置 npm

  1. Repositories 列表中选择刚刚建的 npm-hosted,点击 copy,在弹出的弹框中可以看到仓库地址。

copy.jpg

  1. 在 npm 中配置仓库地址,执行命令:
npm config set registry 仓库地址
  1. 执行下列命令验证配置是否正确:
npm config list

五 . 添加 nexus 权限

Realms 菜单中,将 npm Bearer Token Realm 添加到 Active 中。然后点击 Save 按钮保存。

realm.jpg

这一步最关键,不然会上发布时报 403 错误。

六 . 上传 nexus

具体步骤和上传 npjsmjs 是一样的

npm init -y
npm adduser -registry 仓库地址
npm publish -registry 仓库地址

命令在注册仓库地址是比较麻烦的,可以在 package.json 中添加如下发布配置

"publishConfig": {
  "registry": "仓库地址"
},

然后执行:

npm publish

Browse 找到 npm-hosted,就可以看到已经上传的 npm 包了。

上传

如果是在 package.json 添加注册仓库地址,所有的依赖将通过 npm-group 来拉取。速度会比较慢,因为只有我们的私库存走自己的服务器,其它依赖库其实走的 npm-proxy。

和 jar 包一样,npm 是一个压缩包。除了使用命令行,也可以通过 nexus UI 上传。

7

评论 (0)

取消