使用Nexus搭建npm仓库

简介

Nexus作为私库管理最为流行的工具之一,用于包的管理和Docker镜像管理的私库管理场景中非常常用,但同时也可以用于NPM私库等的管理。

部署nexus

这里为了方便就直接使用docker方式部署。

1
docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus liumiaocn/nexus

访问nexus

仓库类型

具体仓库类型主要分为hosted, proxy, group三种。具体含义如下:

  • hosted 本地存储,提供本地私库功能
  • proxy 提供代理其他仓库的类型
  • group 组类型,可以组合多个仓库为一个地址提供服务

创建blob

创建一个blob用于存放npm相关数据, 建议实际项目中各个仓库根据具体情况决定是否要分别创建blob进行对应,这里就使用默认的即可

创建priavete仓库

创建一个Hosted的仓库作为private仓库,用于管理非npm社区的第三方包或者自己开发的内容。具体设定信息如下

创建proxy仓库

创建一个proxy仓库,Remote Storage设置为: https://registry.npm.taobao.org, 需要保证正确,并且当前机器能够访问到

创建group仓库

创建一个group仓库, 将刚才创建的两个仓库添加进入

配置npm仓库地址

1
npm config set registry http://10.0.20.120:8081/repository/npm-repo-group/

验证

使用如下命令安装可看到安装的详细信息,这里可以看到是通过刚才搭建的仓库下载,这就说明成功了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# npm -loglevel info install -g gulp
npm info it worked if it ends with ok
npm info using npm@5.6.0
npm info using node@v8.11.2
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/gulp 80ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/archy 45ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/orchestrator 62ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/minimist 68ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/semver 101ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/deprecated 112ms
npm http fetch GET 200 http://10.0.20.210:8282/repository/npm-group/interpret 113ms
......
+ gulp@3.9.1
added 253 packages in 7.556s

这时再仓库中就可以看到刚才安装的包,安装过的包都会进行缓存。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器