如何将sinoopia注册表中的所有NPM包复制到Artifactory的本地NPM存储库中?

幼狮亚
2023-01-22还剩11分08秒

主题

如何将Sinopia的NPM包复制到Artifactory的本地NPM库中?

解释

由于以下原因行为,这是不可能解决的范围包从Artifactory中的远程存储库中获取哪个指向国投注册
此行为的原因是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:
  1. 复制SINOPIA_HOME /存储/美元目录到一台可以访问Artifactory并安装了NPM客户端的机器(也应该可以直接从Sinopia主机工作)。

  2. 配置~/。npmrc文件,以便部署(指向)到Artifactory中的NPM本地存储库(您可以遵循'给我介绍Artifactory UI中的小部件)

  3. 在第1节中提到的存储文件夹位置运行以下命令,以获取包含所有软件包列表的文件:
    $ find $SINOPIA_HOME/storage/ -name "*. "tgz”>listOfPackages.txt

  4. 创建一个脚本美元npm发布文件中的所有NPM包都包含上面创建的列表,例如:
    #!/bin/bash
    而读p;做
    echo $ p
    NPM发布$p
    做<listOfPackages.txt

通过遵循上面的步骤,您应该能够将所有的包迁移到Artifactory,并且从现在开始,应该可以美元npm安装之前存储在Sinopia中的限定了作用域的包,直接从Artifactory的本地NPM存储库中获取。