用树莓派装搭建好tomcat7 + nexus2.x的环境后,默认情况下nexus2.x没有创建npm仓库,如果想用nexus2.x搭建私服只需要在Reposirotries中创建对应的仓库类型即可。

只有高版本的nexus2.x才支持npm 这里使用的是 nexus-2.14.17-01

1. 创建npm代理仓库

选择菜单:Repositories -> Add -> Proxy Repository 分别填写:






Repository ID: npmjs_centralRepository Name: npmjs centralProvider: npmRemote Storage Location: https://registry.npm.taobao.orgChecksum Policy: Ignore

这里的 RepositoryID会作为 storage中的存储目录名称,而 RepositoryName则是管理页面显示的名称。

这里的Remote Storage Location可以填写npm中央仓库地址,这里我使用的是淘宝的镜像地址。

2. 创建npm本地仓库

选择菜单:Repositories -> Add -> Hosted Repository 分别填写:




Repository ID: npmjs_myRepository Name: npmjs myProvider: npm

3. 创建仓库组

选择菜单:Repositories -> Add -> Repository Group 分别填写:




Group ID: npm_allGroup Name: npm allProvider: npm

这一步很重要AvailableRepositories中的 npmjsmynpmjs central 加入到左侧的 OrderedGroupRepositories中。

至此 Nexus2.x上的 npm仓库就搭建好了。

那么,自己的开发机如果使用已经搭建的npm仓库呢?

4. 修改npm registry

在自己的开发电脑上打开命令行终端,运行一下指令修改 npm registry,注意修改下面的IP为nexus2.x部署机器对应的IP。


npm config set registry=http://192.168.1.100:8081/nexus/content/groups/npm-all/

5. 拉取依赖

这里创建一下 nexus2test的js项目,测试一下npm依赖的拉取,采用命令行创建项目:





mkdir nexus2testcd nexus2testnpm initnpm install vuex

上面项目安装了 vuex这个依赖,我们可以打开仓库地址看看是否已经拉取成功,访问以下地址即可查看(记得改IP)。

http://192.168.1.100:8081/nexus/content/groups/npm_all/

如果拉取成功,那么下次拉取就npm就会直接从nexus拉取,不用到淘宝镜像中去拉取了,这样能加快依赖拉取速度。

6. 发布依赖

npm仓库搭建好之后,除了可以快速拉取依赖,还可以发布自己的npm包到nexus中,便于团队协作。为了发布方便,这里直接配置 .npmrc这个配置文件(文件在 C:\User\Administrator下面),在这个文件中添加如下配置:


http://192.168.1.100:8081/nexus/content/groups/npm_all/

关于_auth的值格式是“账号:密码”的base64形式(注意中间有“:”) admin:admin123 可以通过这个地址(https://c.runoob.com/front-end/693)对上面的值进行base64。

这里还要注意的是,如果账号没有权限,需要使用管理员账号登录nexus为当前分配npm仓库相应的权限。

最后执行以下命令发布项目:


npm publish --registry http://192.168.1.100:8081/nexus/content/repositories/npmjs_my/

发布成功后可以在http://192.168.1.100:8081/nexus/content/repositories/npmjs_my/查看。