阅读 151

使用nexus搭建一个npm私服

这是我参与更文挑战的第9天,活动详情查看更文挑战

npm相关知识点

npm私服搭建 (1).png

环境准备

Nexus 3.2.1 需要JDK8,如果没有JDK,需要先到oracle官网上去下载
Nexus 下载地址:www.sonatype.org/nexus/

我的版本

nexus-3.20.1-01-unix.tar.gz
没有vpn的话可以使用我的网盘资源:
链接: pan.baidu.com/s/1R92qImWl… 密码: clct

 

环境搭建

解压:

tar xvfz nexus-3.2.1-01-unix.tar.gz
复制代码

image.png

启动:

./nexus-3.20.1-01/bin/nexus start
复制代码

查看日志

tail -f sonatype-work/nexus3/log/nexus.log
复制代码

image.png
从图中可以看到对应的端口为8081。

访问前端页面

domain + 端口访问【8081】访问页面。
image.png

cd /sonatype-work/nexus3
复制代码

内部有一个初始密码文件admin.password,这个密码将用来进行第一次登陆的密码,用户名是admin,在我们登录界面重新设定密码之后,这个文件会消失。然后我们设置一下密码就好,登录到系统内部。

创建存储空间(如果使用默认的存储空间,此步骤可省略)

image.pngimage.pngimage.pngimage.png
image.pngimage.png

创建仓库

仓库类型

  • hosted(私有仓库):用于发布个人开发的npm组件
  • proxy(代理仓库):可以代理npm和淘宝镜像
  • group(组合仓库):对外公开的仓库,集合了hosted和proxy

registry类型

image.png

创建Hosted npm Registries 私有仓库

image.pngimage.png

创建 Proxy npm Registries 代理仓库

image.pngimage.png

创建 Group npm Registries 组合仓库

image.png
注意:选择要包括的仓库,越靠上优先级越高,如果私有仓库在上,用户下载npm包的时候会优先下载私有仓库中的,如果私有仓库没有再去代理仓库中下载。

完成之后创建的三个npm私服库

image.pngimage.png
创建用户,设置权限(用于发布npm包)

image.pngimage.png

用户的状态值一定是Active
image.pngimage.png
设置权限,这一步如果不设置,是不能发布自己的npm包的
image.png



用户端使用私服发布私服npm

用户端设置npm的registry为group仓库

image.png
我本地使用nrm管理npm源。

nrm add rofo http://localhost:8081/repository/rofo-npm-group/
nrm use rofo
复制代码

image.png
image.png

用户登录账号

npm login -registry=http://localhost:8081/repository/rofo-npm-hosted/
复制代码

输入用户名,密码,邮箱
image.pngimage.png

用户端发布自己的npm包到私服

npm publish -registry=http://localhost:8081/repository/rofo-npm-hosted/
复制代码


校验发布成功

用之前发布过的enum插件用dumi发布一个用于处理枚举值的npm包
image.png

image.png更新包

需要先重新设置一下

image.png

image.png

image.png



客户端使用npm包

先看一下rofo-npm-proxy里面的东西,此时里面是没有东西的
image.png

设置npm源地址

npm config set registry http://localhost:8081/repository/rofo-npm-group/
复制代码

使用npm install的时候会报错,本地测试会出现不了,因为上面已经登陆过了,可以通过npm logout登出信息,然后会发现下面的错。
image.png

登录账号,然后在npm install就可以了

npm login -registry=http://localhost:8081/repository/rofo-npm-group/
复制代码

image.png

安装项目依赖

image.png

对比rofo-npm-proxy的前后变化

然后我们再看一下代理rofo-npm-proxy里面的东西,此时里面已经有东西了,这是代理从淘宝的镜像当中获取到的npm包。
image.png

文章分类
前端
文章标签