npm私服搭建及应用

0.前言

1.下载Nexus Repository Manager 包

下载链接:https://www.sonatype.com/download-nexus-repository-trial

点击链接,在页面中选择版本unix,然后下载3.x版本。

2.解压压缩包、启动服务

  • 进入相关文件夹 cd nexus3
  • 进入bin目录 cd nexus-3.12.0-01/bin
  • 启动服务 ./nexus start
  • 服务默认占用端口8081

3.登录

4.新建仓库

  • 点击设置图标,选中Repositories
  • 1.创建私库。点击 Create repository,选择npm(hosted) 类型,这个是存放私服包的库,这里起名为rupiahone-hosted, 然后点击下面的 Create repository 即可。
  • 2.创建代理库。
    • 点击 Create repository ,选择 npm(proxy),这里名称为rupiahone-proxy
    • Remote storage 填入代理源,这里填入的是npm官方的地址https://registry.npmjs.org。如果你有需要,也可以填入淘宝镜像地址https://registry.npm.taobao.org
    • 点击下面的 Create repository 即可。
  • 3.创建仓库组。
    • 点击 Create repository ,选择 npm(group),这里名称为rupiahone-group
    • 在下面Group的视图中,将上面步骤创建的两个仓库添加到右边。

5.权限认证设置

在设置界面,点击Security下的Realms,将npm Bearer Token Realm 添加到右边,然后保存。

(这一步非常重要,否则publish 包到私服的时候会报没有权限的错误)

6.publish模块到私服

  • 新建一个示例项目
1
mkdir test_npm && cd test_npm
  • npm init
  • 编写代码 略 …
  • 登录到私服

    • 执行以下命令

      1
      npm login --registry=http://localhost:8081/repository/rupiahone-hosted/

      (切记,这里registry必须是hosted类型的库)

    • 输入账号密码(默认账号admin,密码admin123,邮箱随便填)
    • 正常的话会提示登录成功的信息。如果你登录失败,得到以下错误:

      1
      Registry returned 404 for PUT on http://localhost:8081/repository/npm-internal/-/user/org.couchdb.user:admin

      解决办法:刷新nexus repostory manger 后台,然后重新npm login。

  • 发布模块。

    • 执行命令(切记,这里registry必须是hosted类型的库)
      1
      npm publish --registry=http://localhost:8081/repository/rupiahone-hosted/
  • 查看已发布模块。

    在页面http://localhost:8081/#browse/browse中,选中你的hosted库,就可以看到你发布的模块了。私有包的依赖包会存放在group库中。

7.安装私服模块。

安装就简单多了,只要执行以下命令即可:

1
npm install xxx --registry=http://localhost:8081/repository/rupiahone-group/`

(注意:xxx为包名,安装时的registry必须是group类型的库)