最近在着手整理一些平常写的 Vue UI 组件,我们一般习惯 Vue CLI SPA 开发方式,所以要在不同项目之间公用这些组件就很麻烦。要是将这些组件做成一个组件库工程,发布到 npmjs 官网就可以通过 npm 命令方便拉取了。但我担子再大也不敢将公司的代码上传外网吧。得托管到公司的私有仓库。我知道的 npm 私有仓库有 cnmp。后来后端同学推荐我试一试 nexus。因为公司已经搭建好 Nexus,只需开放 npm 包托管功能就行了。
一 . 在 Nexus 中新建一个 repository
打开 nexus,登录以后,按照下图操作
二 . 选择 npm (hosted)
三 . 填写 repository 相关信息
- 这里的 Blob store 选择为 npm 专属的,没有需要在 Blob Stores 新建
- 在 Hosted 选择:Allow redeploy。
- 重新查看配置如下:
四 . 查看配置 npm
- 在 Repositories 列表中选择刚刚建的 npm-hosted,点击 copy,在弹出的弹框中可以看到仓库地址。
- 在 npm 中配置仓库地址,执行命令:
npm config set registry 仓库地址
- 执行下列命令验证配置是否正确:
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 上传。
评论 (0)