前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Nexus3 Repository Manager 搭建 npm 私服

使用 Nexus3 Repository Manager 搭建 npm 私服

作者头像
IT小马哥
发布2023-10-09 08:25:56
8500
发布2023-10-09 08:25:56
举报
文章被收录于专栏:Java TaleJava Tale

下载安装

在官网下载 Nexus Repository Manager OSS 3.x, 解压至任意位置. 管理员运行cmd, 切换到 nexus-3.58.1-02/bin 目录

代码语言:javascript
复制
 ./nexus start

第一次要耐心等待一会,等待启动完毕后,

浏览器访问http://127.0.0.1:8081, 点击右上角 Sign In 登陆, 默认账号: admin 密码: admin123

添加npm仓库

点击左侧菜单Repositories,点击 Create repository

看到仓库类型列表

npm(group)表示分组 npm(hosted)表示本机私有 npm(proxy)表示远程代理。 若registry配置为group(包括hosted和proxy),首先会从hosted取,若无则从proxy取并缓存,下次则会从缓存取。

添加npm(proxy)

输入 Name: npm-proxy, remote storage 填写 https://registry.npm.taobao.org 或 https://registry.npmjs.org. 用于将包情求代理到地址地址

最后点击下方的 Create repository

添加npm(hosted)

再次点击Create repository按钮,增加npm(hosted)输入 Name: npm-hosted, 点击下方的 Create repository

添加npm(group)

再次点击Create repository按钮,增加npm(group)输入 Name: npm-group,Member repositories里选择之前添加的2个移动右边

配置与验证npm仓库

查看并设置nodejs的默认仓库地址

代码语言:javascript
复制
npm config get registry  #http://registry.cnpmjs.org/
npm config set registry http://x.x.x.x:8081/repository/npm-group/

验证仓库地址

代码语言:javascript
复制
#随便进入一个目录
初始化package
npm init -y
# 查看是否从自己的仓库地址拉取包
npm --loglevel info install jquery

从上图中可以看到,fetch地址即为私服地址。

查看刚搭建的私服里的内容为空, 在安装了依赖包后,就会有一些被缓存了,下次请求就不会走外网了

发布包到私服

npm发布包是需要先登录的,默认是登录到npm官方服务器,若registry已更改为其它地址则可能登录失败,而这里我们只是想把包发布到自己私有的服务器上。

添加权限认证

设置权限, Realms 菜单, 将 npm Bearer Token Realm 添加到右边

创建角色

创建nx-deploy角色 给角色赋于一个nx-repository-view-*-*-*权限

创建用户

创建deployer 用户,密码也为 deployer,同时设定角色为nx-deploy

客户端的.npmrc配置

代码语言:javascript
复制
registry=http://x.x.x.x:8081/repository/npm-group/
email=email@maruifu.cn
always-auth=true
_auth="ZGVwbG95ZXI6ZGVwbG95ZXI="

_auth是 username:password 的base64值,这样设置的好处是publish时就不用login了。 该文件是当前用户目录下的.npmrc文件

发布控件到npm私服中

在package.json 配置

代码语言:javascript
复制
"publishConfig" : {
    "registry" : "http://localhost:8081/repository/npm-hosted/"
  }

在包根目录执行npm publish即可

注意:发布是npm-hosted,不是npm-group.

代码语言:javascript
复制
# 若不想在package.json配置,也可以在命令行指定
npm publish --registry=http://localhost:8081/repository/npm-hosted/

Nexus3数据备份迁移

内网环境下,很多包需要从外网移入,可以把相关包在外网安装测试成功后,然后将缓存的包直接复制到内网即可。

Linux

仓库迁移

Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由nexus/conf/nexus.properties配置文件指定。 仓库迁移需要两个过程:备份和还原

备份仓库

将sonatype-work文件夹整体备份即可,也可以选择只备份最重要的两个文件夹索引(indexer)和仓库(storage)

还原仓库

将备份好的sonatype-work文件拷贝到新的服务器中。然后修改nexus/conf/nexus.properties配置文件,重新指定仓库的目录。

Windows

仓库迁移

Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由bin/nexus.vmoptions配置文件指定(Dkaraf.data)。 仓库迁移需要两个过程:备份和还原

备份仓库

将sonatype-work文件夹整体备份即可,也可以选择只备份最重要的两个文件夹索引(indexer)和仓库(storage)

还原仓库

将备份好的sonatype-work文件拷贝到新的服务器中。然后修改bin/nexus.vmoptions配置文件,重新指定仓库的目录。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载安装
  • 添加npm仓库
    • 添加npm(proxy)
      • 添加npm(hosted)
        • 添加npm(group)
        • 配置与验证npm仓库
        • 发布包到私服
          • 添加权限认证
            • 创建角色
              • 创建用户
                • 客户端的.npmrc配置
                  • 发布控件到npm私服中
                  • Nexus3数据备份迁移
                    • Linux
                      • 仓库迁移
                      • 备份仓库
                      • 还原仓库
                    • Windows
                      • 仓库迁移
                      • 备份仓库
                      • 还原仓库
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档