这是我参与更文挑战的第9天,活动详情查看: 更文挑战
npm相关知识点
环境准备
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
启动:
./nexus-3.20.1-01/bin/nexus start
查看日志
tail -f sonatype-work/nexus3/log/nexus.log
访问前端页面
domain + 端口访问【8081】访问页面。
cd /sonatype-work/nexus3
内部有一个初始密码文件admin.password,这个密码将用来进行第一次登陆的密码,用户名是admin,在我们登录界面重新设定密码之后,这个文件会消失。然后我们设置一下密码就好,登录到系统内部。
创建存储空间(如果使用默认的存储空间,此步骤可省略)
创建仓库
仓库类型
- hosted(私有仓库):用于发布个人开发的npm组件
- proxy(代理仓库):可以代理npm和淘宝镜像
- group(组合仓库):对外公开的仓库,集合了hosted和proxy
registry类型
创建Hosted npm Registries 私有仓库
创建 Proxy npm Registries 代理仓库
创建 Group npm Registries 组合仓库
注意:选择要包括的仓库,越靠上优先级越高,如果私有仓库在上,用户下载npm包的时候会优先下载私有仓库中的,如果私有仓库没有再去代理仓库中下载。
完成之后创建的三个npm私服库


创建用户,设置权限(用于发布npm包)
用户的状态值一定是Active
设置权限,这一步如果不设置,是不能发布自己的npm包的
用户端使用私服发布私服npm
用户端设置npm的registry为group仓库
我本地使用nrm管理npm源。
nrm add rofo http://localhost:8081/repository/rofo-npm-group/
nrm use rofo
用户登录账号
npm login -registry=http://localhost:8081/repository/rofo-npm-hosted/
输入用户名,密码,邮箱
用户端发布自己的npm包到私服
npm publish -registry=http://localhost:8081/repository/rofo-npm-hosted/
校验发布成功
用之前发布过的enum插件用dumi发布一个用于处理枚举值的npm包
更新包
需要先重新设置一下
客户端使用npm包
先看一下rofo-npm-proxy里面的东西,此时里面是没有东西的
设置npm源地址
npm config set registry http://localhost:8081/repository/rofo-npm-group/
使用npm install的时候会报错,本地测试会出现不了,因为上面已经登陆过了,可以通过npm logout登出信息,然后会发现下面的错。
登录账号,然后在npm install就可以了
npm login -registry=http://localhost:8081/repository/rofo-npm-group/
安装项目依赖
对比rofo-npm-proxy的前后变化
然后我们再看一下代理rofo-npm-proxy里面的东西,此时里面已经有东西了,这是代理从淘宝的镜像当中获取到的npm包。