前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Nexus 3 :npm仓库配置

如何使用Nexus 3 :npm仓库配置

作者头像
coderidea
发布2023-09-20 08:24:53
1.5K0
发布2023-09-20 08:24:53
举报
文章被收录于专栏:coderidea

这是关于如何将Sonatype Nexus 3用作多种技术仓库的第二部分。

npm install有时可能会花费太长时间,因此在自己的内网中拥有一个代理可能是个好主意。如果您不愿支付每月7美元来托管您的包在官方npm私有仓库中,那么你会从本文中受益。

如何下载安装 请查看本系列的第一部分如何使用Sonatype Nexus Repository 3 :Maven仓库配置

配置Sonatype Nexus 3作为npm仓库,我们将要做的事情包括:

  • 创建一个用于托管我们自己的npm包的私有仓库
  • 创建一个代理仓库,指向官方npm registry
  • 创建一个组仓库,以在统一URL下提供所有上述仓库的访问。

我建议您为每个要创建的新仓库创建一个新的Blob存储。这样,每个仓库的数据将位于/nexus-data目录内的不同文件夹中(在Docker容器内部)。但这不是必须的,默认仍然可以正常工作。

私有仓库

用于存储您的团队开发的npm包的仓库。

创建一个新的npm(托管)仓库并按以下方式配置它:

上面的部署策略“允许重新部署”可能看起来有争议,可以将其设置为“禁用重新部署”,这按自己的构建要求配置。

代理仓库

一个代理仓库,用于代理您从官方npm registry(可以添加多个,例如可以增加淘宝的镜像源)下载的所有内容。下次下载相同的依赖项时,它将被缓存在自己的Sonatype Nexus中。

创建一个新的npm(代理)仓库并按以下方式配置它:

组仓库

这将汇集所有上述仓库,并为您提供一个统一的URL,以便配置您的客户端从中下载/部署。

创建一个新的npm(组)仓库并按以下方式配置它:

配置客户端和项目以使用自己的Sonatype Nexus仓库。

对于npm,我们将为每个项目配置仓库(不像Maven,它有一些全局配置)。我相信您可以使用npm addUser在全局范围内配置身份验证,但出于简单起见,我没有采用这种方式。

如果您有一个项目只想从Sonatype Nexus下载依赖项,请在项目的根目录下创建一个.npmrc文件,并添加以下内容:

代码语言:javascript
复制
registry=http://your-host:8081/repository/npm-group/
_auth=YWRtaW46YWRtaW4xMjM=

_auth=YWRtaW46YWRtaW4xMjM= 是凭据(admin/admin123)的Base64哈希值。如果您使用不同的凭据,您应该使用以下方法计算自己的哈希值:

代码语言:javascript
复制
echo -n 'myuser:mypassword' | openssl base64

您必须设置一个用户才能发布包。如果您是从本地计算机执行此操作,npm publish将使用在~/.npmrc(位于您的主目录中,而不是在项目中)中配置的用户。如果您没有这个配置,或者如果您想从CI中发布,您可以在项目的.npmrc中设置email=any@email.com配置。实际上,可以使用任何电子邮件地址。

如果您有一个要发布到Sonatype Nexus的项目,请将以下内容添加到package.json文件中:

代码语言:javascript
复制
{..."publishConfig": {"registry": "http://your-host:8081/repository/npm-private/"}}

请注意,您可以将包发布到您的私有仓库,但在下载时,可以指向您的组仓库,以便您自己的包和官方仓库的包都可以从单一的URL中获取。

现在,如果您在您的项目中运行:

代码语言:javascript
复制
npm install
# or
npm publish

您的npm将指向您的Sonatype Nexus实例。

全局安装npm包

Run:

代码语言:javascript
复制
npm --registry http://your-host:8081/repository/npm-group/
 install -g your-pac
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-12 12:30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coderidea 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置Sonatype Nexus 3作为npm仓库,我们将要做的事情包括:
  • 配置客户端和项目以使用自己的Sonatype Nexus仓库。
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档