
# 迁移本地NPM仓库数据至CodeArts Artifact私有依赖库
本地仓库是指在用户计算机上存储的软件包或依赖项的副本。当用户使用NPM构建工具来管理项目依赖时，这些工具会从远程仓库下载所需的库文件到本地仓库中。而CodeArts Artifact通过对开发过程中产生的依赖组件和最终产物进行存储和推送拉取权限的严格管控，更高效实现团队内协同开发。因此对于用户本地磁盘中已有NPM仓库数据迁移切换至CodeArts Artifact后即可在CodeArts Artifact进行更为统一高效的操作和运维。为此，CodeArts Artifact提供了批量迁移工具，方便用户将本地磁盘中的NPM仓库数据批量快速迁移至CodeArts Artifact私有依赖库中的NPM私有依赖库。
#### 约束与限制
仅支持迁移本地Maven仓库、NPM仓库数据至CodeArts Artifact私有依赖库。本章节介绍如何迁移本地NPM仓库数据至CodeArts Artifact私有依赖库。
#### 前提条件
- 已有可用项目。如果没有项目，请先[创建项目](https://support.huaweicloud.com/usermanual-devcloud/codearts_01_0027.html)。
- 添加当前账号对当前NPM私有库的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)。
- 已在CodeArts Artifact[创建NPM格式私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 运行环境为Python3。
- 运行迁移工具所在的本地机器必须和CodeArts Artifact服务网络连通。即迁移工具所在机器可以正常访问CodeArts Artifact服务的网络地址。可通过如下两种方法验证：
  - 打开浏览器可直接访问CodeArts Artifact服务的***仓库地址*** （仓库地址的获取方法请参考[步骤一：获取CodeArts Artifact的目标NPM私有依赖库信息]的**[1]** \~**[3](https://support.huaweicloud.com/bestpractice-cloudartifact/cloudartifact_06_0012.html#cloudartifact_06_0012__zh-cn_topic_0000002377402409_zh-cn_topic_0000002263026604_zh-cn_topic_0000002184054264_li16690206707)**）。
  
  - 执行如下命令： telnet *CodeArts Artifact服务的仓库地址* （仓库地址的获取方法请参考[步骤一：获取CodeArts Artifact的目标NPM私有依赖库信息]的**[1]** \~**[3](https://support.huaweicloud.com/bestpractice-cloudartifact/cloudartifact_06_0012.html#cloudartifact_06_0012__zh-cn_topic_0000002377402409_zh-cn_topic_0000002263026604_zh-cn_topic_0000002184054264_li16690206707)**）
    
   
 
 #### 步骤一：获取CodeArts Artifact的目标NPM私有依赖库信息
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 在左侧边栏中单击目标NPM私有依赖库的仓库名称，进入仓库详细信息页面，可查看到"仓库地址"。
3. 单击仓库地址右侧![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002507262960.png)即可复制该地址。
4. 单击页面右上方"操作指导"，在弹框中单击"下载配置文件"，将npmrc文件下载到本地。 
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002533282451.png "点击放大")
   
   
5. 在本地打开配置文件，在文件中找到"_auth"字段的值并进行base64解码。
 
#### 步骤二：配置迁移脚本
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 在左侧边栏中选择目标NPM私有依赖库。
3. 单击仓库名称，在页面右上方单击![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002507261580.png)，然后在下拉选项中单击"下载迁移工具"将迁移工具压缩包"MigrateTool.zip"下载到本地并解压，解压后获取"uploadArtifact.py"（迁移工具）、"artifact.conf"（配置文件）。
4. 配置"artifact.conf"文件中如下样例中的参数，其他参数可删除。 
   \[artifact\]
   packageType = 组件类型，设置为npm
   userInfo = npm仓库下的配置文件npmrc中通过base64解密后的_auth字段的值（参见[步骤一：获取CodeArts Artifact的目标NPM私有依赖库信息]的**[5]**获取）
   repoRelease = 私有依赖库地址（[步骤一：获取CodeArts Artifact的目标NPM私有依赖库信息]的**[3]**中获取的私有依赖库仓库地址）
   repoSnapshot = 保留为空
   srcDir = 需要迁移的NPM本地仓库组件的目录路径，由用户自定义，例如：C:\\Users\\xxxxxx\\repository
   
   
 
#### 步骤三：执行迁移
执行[3]获取的迁移工具，即运行如下命令：
```
python uploadArtifact.py
```
#### 步骤四：验证迁移结果
进入CodeArts Artifact对应的目标NPM私有依赖库，查看本地NPM仓库数据是否上传成功。
如果迁移失败，可尝试重新执行迁移步骤或联系客服寻求技术支持。
