Nexus OSS3创建npm 私服

题图来自npmjs.com

npm 简介

npmnodejs 的包管理工具。有包管理工具的语言和系统才会更容易使用和流行。比如Ubuntu 的apt-get,Fedora 的yum,Go 语言的go get。

  1. 用户可以通过npm 命令从npm服务器下载第三方包和程序到本地。
  2. 用户可以将自己编写的包或程序上传到npm服务器供别人下载使用。

Hexo 博客程序就是通过npm 安装的。

1
npm install hexo-cli -g

由于国内的网络环境比较有特色,很多时候通过npm的官方服务器下载很慢或者下载失败,所以经常看到有人在找npm 镜像,当然也有人搭建npm 镜像。比较出名且速度快的是淘宝npm 镜像,号称10分钟同步一次。
在前几天已经用Docker 搭建Nexus OSS3私服,而且Nexus3是支持npm的,所以就简单的利用Nexus3创建npm 私服。

创建npm 私服

打开Nexus,在Nexus 的设置中点击Repositories,然后点击Create repositry按钮。

在Repositry 中可以创建三种类型的仓库,分别是group、hosted和proxy。
group 指的是仓库组,可以包括hosted 和proxy的仓库。
hosted 是指自己的私有仓库,可以上传私有代码到上面。
proxy 就是代理镜像仓库。
一般情况下无论是Maven、pypi 还是npm,这3种类型的仓库都会分别建一个,然后用的时候指向group 仓库。
创建的顺序是先hosted 或proxy ,最后才是group,因为group要包括hosted 和proxy。

创建hosted

hosted仓库只需要填上仓库名即可,其它的默认。因为只有一个Blob Stores 所以不需要选择,也可以按类型每一类都建一个Blob Store。

创建proxy

proxy仓库不仅需要填名字而且需要填上代理服务器地址,这里填淘宝的npm地址https://registry.npm.taobao.org

创建group

填上仓库名,把刚刚创建的两个仓库移到右边的框即可。

npm 私服使用

经过以上的几个步骤npm 私服就创建完毕啦,私服使用起来也很简单,跟使用镜像一样。
在用户的主目录下的.npmrc文件中添加registry = http://172.18.2.40:8081/repository/w-npm-group/。Windows的用户主目录是C:\Users\用户名,比如我的就是C:\Users\wendyeq,MacOS和Linux直接在终端执行cd ~即可,没有这个文件的话就新建一个。

http://172.18.2.40:8081/repository/w-npm-group/就是刚刚创建group的URL,换为https://registry.npm.taobao.org 就是直接使用淘宝镜像啦。

最后用npm -loglevel info install mysql测试验证包是否从npm私服下载。

1
2
3
4
5
6
$ npm -loglevel info install mysql
npm info it worked if it ends with ok
npm info using npm@3.10.9
npm info using node@v7.1.0
npm http request GET http://172.18.2.40:8081/repository/w-npm-group/mysql
npm http 200 http://172.18.2.40:8081/repository/w-npm-group/mysql