npm私有仓库权限设置
文章目录
nexus支持npm仓库,可以设置Proxy代理仓库、Hosted自建仓库和Group聚合仓库,以满足前端日常开发和发布需要。
仓库设计
功能入口:Administrator → Repository →Blob Stores/Repositories
-
npm-proxy 代理仓库,remote storage设置为官方仓库(
https://registry.npmjs.org
),或者国内镜像(https://registry.npm.taobao.org
)。独立Blob Stores(npm-proxy),限额10G。 -
npm-hosted 自建仓库,用于本地发布。独立Blob Stores(npm-hosted),限额10G。
-
npm-group 聚合仓库:代理仓库(npm-proxy)和自建仓库(npm-hosted),方便使用。
角色设置
功能入口:Administration → Security → Roles
-
npm-publish 发布npm,有如下权限
-
nx-repository-view-npm-npm-hosted-add
-
nx-repository-view-npm-npm-hosted-edit
-
nx-repository-view-npm-npm-hosted-read
-
-
npm-download 使用npm,有如下权限
-
nx-repository-view-npm-npm-group-browse
-
nx-repository-view-npm-npm-group-read
-
用户设置
Security→Users→Create User:xxx,授予角色:npm-publish、npm-download
开启npm验证
功能入口:Administration → Security → realms → npm Bearer Token realm
客户端使用
-
查看仓库列表:
cat ~/.npmrc
-
查看当前仓库:
npm config get registry
-
设置当前仓库:
npm config set registry
-
登录:
npm login
开发人员使用方法
开发人员在开发过程中需要下载npm的依赖,包括官方的和私有的。
npm config set registry https://repo.liming.pub/nexus/repository/npm-group/ # (1)
npm login --registry=https://repo.liming.pub/nexus/repository/npm-group/ # (2)
npm get registry # (3)
-
设置主仓库
-
登录主仓库
-
检查是否设置成功
配管人员使用方法
配管人员主要职责是发布测试或生产包,所以比开发人员多了个部署发布npm包的权限。
- npm打包发布示例
npm config set registry https://repo.liming.pub/nexus/repository/npm-group/ # (1)
npm login --registry=https://repo.liming.pub/nexus/repository/npm-group/ # (2)
npm login --registry=https://repo.liming.pub/nexus/repository/npm-hosted/ # (3)
npm publish --registry=https://repo.liming.pub/nexus/repository/npm-hosted/ # (4)
-
设置主仓库为npm-group,可以下载npm-proxy和npm-hosted仓库的npm包
-
主仓库(npm-group)登录
-
自建仓库(npm-hosted)登录,用于发布私有npm包到npm-hosted
-
npm指定自建仓库(npm-hosted)发布
- Angular打包发布示例
-
.npm_ng_publish.sh
sed -i 's/"peerdependencies"/"dependencies"/g' package.json npm install sed -i 's/"dependencies"/"peerdependencies"/g' package.json npm run packagr npm publish --registry=https://repo.liming.pub/nexus/repository/npm-hosted/