如何将sinoopia注册表中的所有NPM包复制到Artifactory的本地NPM存储库中?
主题
如何将Sinopia的NPM包复制到Artifactory的本地NPM库中?
解释
由于以下原因行为,这是不可能解决的范围包从Artifactory中的远程存储库中获取哪个指向国投注册。
此行为的原因是Sinopia期望获得带有编码的请求。/'(斜杠)字符,这与方式不同npmjs(公共NPM注册表)有效。
此行为的原因是Sinopia期望获得带有编码的请求。/'(斜杠)字符,这与方式不同npmjs(公共NPM注册表)有效。
例如,当sinoopia注册中心期望获得如下请求时:
@用户名% 2 fnpmscpoe /——/ npmscpoe-1.0.0.tgz
Artifactory发送的请求如下(npmjs所期望的):
@用户名/npmscpoe /——/ npmscpoe-1.0.0.tgz
因此,“404通过Artifactory从Sinopia返回请求范围包的响应。
如何克服这种行为?
为了…复制所有的包在Artifactory的本地NPM库中,你可以按照以下几个简单的步骤:
由于所有的包裹都存放在中国
SINOPIA_HOME /存储/美元目录,可以按照以下步骤将它们从该位置复制到Artifactory:复制
SINOPIA_HOME /存储/美元目录到一台可以访问Artifactory并安装了NPM客户端的机器(也应该可以直接从Sinopia主机工作)。配置~/。
npmrc文件,以便部署(指向)到Artifactory中的NPM本地存储库(您可以遵循'给我介绍Artifactory UI中的小部件)在第1节中提到的存储文件夹位置运行以下命令,以获取包含所有软件包列表的文件:
$ find $SINOPIA_HOME/storage/ -name "*. "tgz”>listOfPackages.txt创建一个脚本
美元npm发布文件中的所有NPM包都包含上面创建的列表,例如:#!/bin/bash
而读p;做
echo $ p
NPM发布$p
做<listOfPackages.txt
通过遵循上面的步骤,您应该能够将所有的包迁移到Artifactory,并且从现在开始,应该可以美元npm安装之前存储在Sinopia中的限定了作用域的包,直接从Artifactory的本地NPM存储库中获取。