This website requires JavaScript.

基于Nexus搭建npm私服,发布npm包

2019.06.12 02:20字数 2529阅读 55喜欢 0评论 1

本文主要针对Nexus 3.X 版本进行设置

一、安装Nexus

安装就不过多赘述了,Google 一下会有很多教程,Nexus 2.X 与Nexus 3.X 差异比较大,搭npm的话建议3.X。

二、配置npm

首先既然是私服,就要先创建仓库存放包,npm 的仓库大概有这几种类型

npm(group)表示分组,npm(hosted)表示本机私有也就是私有的npm包,npm(proxy)表示远程代理。
若registry配置为group(包括hosted和proxy),首先会从hosted取,若无则从proxy取并缓存,下次则会从缓存取
点击repositories --- Create Repository 找到这几种类型分别创建

2.1创建proxy 代理 https://registry.npmjs.org,name 自定义

2.2创建hosted,此仓库存放自有npm包

2.3创建分组,该分组包含hosted 与 proxy,需要把刚刚创建的两个repository 移到右边

至此,私服仓库就建好了

三、修改源地址

把本机的npm源地址切换到我们自己的私服

npm config set registry https://****.****.com/repository/npm-fe-group/

做完这一步,我们去项目里安装包就会缓存到我们的group组了

npm install jquery

四、创建用户,分配权限

如果想要发布自己的npm 包到私服,还需要配置好权限,创建一个该权限的用户

4.1、左侧菜单Security - Roles 点击 Create Role

这块权限设计依照经典的权限Role-based Access Control,基于角色的权限控制模型。

  • Privileges 权限信息
    目前分为页面编辑部分默认已经建好,而且不允许编辑;仓库部分,默认仓库的相关权限也已经建好,并且不允许编辑,可以针对新建的仓库进行权限的编辑(nexus2.x版本新建仓库代码默认生成view查看权限,其他需要新建)
     nx-repository-admin 开头的是针对仓库本身的相关权限
     nx-repository-view 开头的是针对仓库里包的相关权限
    
  • Roles 角色信息
    角色拥有相应的具体权限,当前服务默认生产两种权限
     nx-admin 超管权限
     nx-anonymous 匿名用户权限
    

4.2、左侧菜单左侧菜单Security - Users 点击 Create Local user,用户名自定义,Roles配置好刚才创建的Role

五、修改.npmrc ,上传库到npm

现在就可以执行 npm publish上传自己包了,还可以做免登录设置,修改.npmrc文件

windows 下 .npmrc 位置
C:\Users\yourName
mac 下.npmrc 位置
/User/mac
.npmrc文件最后添加即可,每个人的是不同的,请勿复制本文内容,需要自己生成
email=dev@alibaba.com  // 创建用户的邮箱
always-auth=true
_auth="ZmVkZXBsb3llcjoxMjM0NTY="  // 创建用户  用户名:密码 ==>  base64转码

让我们修改一下package.json 试试发布吧

registry 需要配置hosted的地址,因为本文创建的是本地的npm私服仓库

执行命令

npm run pub

去Nexus 查看,npm-fe-hosted 已经发布成功了

OK,我们的私服至此就完成了