如何使用 Nexus 3:npm 软件源配置
这是关于如何将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
文件,并添加以下内容:
registry=http://your-host:8081/repository/npm-group/
_auth=YWRtaW46YWRtaW4xMjM=
_auth=YWRtaW46YWRtaW4xMjM=
是凭据(admin/admin123)的Base64哈希值。如果您使用不同的凭据,您应该使用以下方法计算自己的哈希值:
echo -n 'myuser:mypassword' | openssl base64
您必须设置一个用户才能发布包。如果您是从本地计算机执行此操作,npm publish
将使用在~/.npmrc
(位于您的主目录中,而不是在项目中)中配置的用户。如果您没有这个配置,或者如果您想从CI中发布,您可以在项目的.npmrc
中设置email=any@email.com
配置。实际上,可以使用任何电子邮件地址。
如果您有一个要发布到Sonatype Nexus的项目,请将以下内容添加到package.json
文件中:
{..."publishConfig": {"registry": "http://your-host:8081/repository/npm-private/"}}
请注意,您可以将包发布到您的私有仓库,但在下载时,可以指向您的组仓库,以便您自己的包和官方仓库的包都可以从单一的URL中获取。
现在,如果您在您的项目中运行:
npm install
# or
npm publish
您的npm将指向您的Sonatype Nexus实例。
全局安装npm包
Run:
npm --registry http://your-host:8081/repository/npm-group/
install -g your-pac
推荐阅读
-
如何使用 Sonatype Nexus Repository 3:Maven Repository 配置
-
如何使用 Nexus 3:npm 软件源配置
-
如何在局域网内使用Linux配置自定义YUM源以安装软件包
-
如何在CentOS 7下实现多台内网服务器共享同一本地yum源? 1. 将共享源服务器(IP: 192.168.100.111)上的yum源进行本地化配置; 2. 使用Nginx为共享源服务器提供外部访问地址; 3. 在其他内网服务器上配置共享源服务器的地址。 共享源本地yum源的配置: 1. 在服务器上创建目录并备份原有yum源文件: ``` mkdir /data/{centos-yum.bak,centos,centos-images} mv /etc/yum.repos.d/* /data/centos-yum.bak/ 上传镜像文件到服务器: mv CentOS-7-x86_64-DVD-1810.iso /data/centos-images/ 挂载镜像文件: mount -o loop -t iso9660 /data/centos-images/CentOS-7-x86_64-DVD-1810.iso /data/centos #取消挂载 umount /data/centos ``` 2. 创建repo文件: ``` vim /etc/yum.repos.d/my.repo [my] name=my baseurl=file:///data/centos enabled=1 gpgcheck=0 ``` 3. 制作缓存: ``` yum clean all yum makecache ``` 4. 查看详细信息: ``` [root@omnis-server data]# pwd /data [root@omnis-server data]# ls centos centos-images centos-yum.bak [root@omnis-server data]# cd centos [root@omnis-server centos]# pwd /data/centos [root@omnis-server centos]# ls CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL ```