分类
Java Javascript

Nexus上发布npm包

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

一、在Nexus中新建一个 repository

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

二、选择 npm (hosted)

三、填写 repository 相关信息

1、这里的Blob store选择为npm专属的,没有需要在Blob Stores新建

2、在Hosted选择:Allow redeploy。

3、重新查看配置如下:

四、查看配置npm

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


2、在npm 中配置仓库地址,执行命令:
[bush]
npm config set registry 仓库地址
[/bash]
3、执行下列命令验证配置是否正确:

npm config list

五、添加nexus权限

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

这一步最关键,不然会上发布时报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上传