将 npm 项目连接到 Azure Artifacts

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Artifacts 使开发人员能够管理来自各种源的包,包括公共注册表(如 npmjs.com 和专用源)。 若要使用 Azure Artifacts 进行身份验证,需要配置 npm 配置文件。 此文件包含 npm 使用的源 URL 和凭据,提供自定义 npm 客户端行为的选项,例如设置代理、定义默认包位置或配置专用包源。 .npmrc 文件通常位于用户的主目录中,但也可在项目级别创建以替代默认设置。

先决条件

连接到源

Azure Artifacts 建议使用两个单独的配置文件。 第一个专用于使用 Azure Artifacts 进行身份验证,而第二个应保存在本地以存储凭据。 此方法允许你在确保凭据安全的同时共享配置文件。

若要设置第二个文件,只需将其放在开发计算机上的主目录中,并包括所有注册表凭据。 这使 npm 客户端能够轻松访问凭据进行身份验证。

以下步骤将指导你设置第一个配置文件:

注意

vsts-npm-auth 在 Azure DevOps Server 中不受支持。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择 “项目”,然后选择“ 连接到源”。

    显示如何在 Azure DevOps Services 中连接到源的屏幕截图。

  3. 从左侧边栏中选择 npm 。 如果这是首次将 Azure Artifacts 与 npm 配合使用,请确保已安装必备组件。

  4. 按照“项目设置”部分中的说明连接到源。

    显示如何设置 npm 项目的屏幕截图。

  1. 登录到 Azure DevOps 集合,然后导航到项目。

  2. 选择 “项目”,然后选择“ 连接到源”。

    显示如何在 Azure DevOps Server 2022.1 中连接到源的屏幕截图。

  3. 从左侧栏中选择 npm,然后按照“项目设置”部分中的说明设置配置文件。

    显示如何在 Azure DevOps Server 2022.1 中设置 npm 项目的屏幕截图。

  1. 登录到 Azure DevOps 集合,然后导航到项目。

  2. 选择 “项目”,然后选择“ 连接到源”。

    显示如何在 Azure DevOps Server 2020.1 中连接到源的屏幕截图。

  3. 从左侧选择 npm,然后按照 Project 安装程序中的说明设置配置文件。

    显示如何在 Azure DevOps Server 2020.1 中设置 npm 项目的屏幕截图。

  1. 登录到 Azure DevOps 集合,然后导航到项目。

  2. 选择 “项目”,然后选择“ 连接到源”。

    显示如何在 Azure DevOps Server 2019.1 中连接到源的屏幕截图。

  3. 将出现一个新窗口。 在左侧导航窗格中,选择 npm

  4. 按照提供的说明配置 项目用户 .npmrc 文件。

    显示如何在 Azure DevOps Server 2019.1 中设置项目级和用户级 npmrc 文件的屏幕截图。

提示

范围和上游源支持在 .npmrc 文件中使用多个注册表。

管道身份验证

若要使用管道进行身份验证,Azure Artifacts 建议使用 npm 身份验证任务

使用 gulp 或 Grunt 等任务运行程序时,优先在管道开头设置 npm 身份验证任务 。 此步骤可确保凭据注入到项目的 .npmrc 文件中并在整个管道运行中保留,从而使后续步骤能够访问配置文件中的凭据。

  1. 导航到项目,选择 “管道”,然后选择管道定义。

  2. 选择“编辑”以修改管道。

  3. 选择 + 以向管道添加新任务。

    显示如何将 npm 身份验证任务添加到管道的屏幕截图。

  1. 导航到项目,选择“管道>生成”,然后选择生成定义。

  2. 选择“编辑”以修改生成管道。

  3. 选择 + 以向生成管道添加新任务。

    显示如何将 npm 身份验证任务添加到管道的屏幕截图。

  1. 搜索 npm 身份验证任务,然后选择“添加”。

    显示添加到管道中的 npm 身份验证任务的屏幕截图。

  2. 选择 .npmrc 文件,然后在完成后选择“保存并排队”。

    显示如何添加 *.npmrc* 文件的屏幕截图。

注意

若要从管道访问源,请确保在源设置>权限将生成服务角色设置为“源和上游读取者”(参与者)。

显示源设置中的生成服务角色的屏幕截图。

注意

如果组织使用的是防火墙或代理服务器,请确保允许相应的域 URL。 有关详细信息,请参阅 允许的 IP 地址和域 URL

疑难解答

vsts-npm-auth 无法识别

此错误表示尚未将 npm modules 文件夹添加到路径。 重新运行Node.js设置,并确保选择该 Add to PATH 选项。 或者,可以通过在命令提示符或 $env:APPDATA\npm PowerShell 中将 PATH 变量修改为%APPDATA%\npm路径,将 npm modules 文件夹添加到路径。

显示如何设置node.js的屏幕截图。

无法进行身份验证

  • 错误:代码 E401 npm ERR!无法进行身份验证: -> 使用 -F 标志运行vsts-npm-auth命令以重新进行身份验证:

    vsts-npm-auth -config .npmrc -F
    

重置 vsts-npm-auth

按照以下步骤重置 vsts-npm-auth 凭据:

  1. 卸载 vsts-npm-auth:

    npm uninstall -g vsts-npm-auth
    
  2. 清除 npm 缓存:

    npm cache clean --force
    
  3. 删除 .npmrc 文件。

  4. 重新安装 vsts-npm-auth:

    npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
    

无法发布

如果遇到 403 错误,则可能表示名称冲突。 在 Azure Artifacts 中,包是不可变的,这意味着将包发布到源后,其版本号将永久保留。 即使删除了它,也不能发布具有相同版本号的新包。 若要解决此问题,请更新package.json文件中的包版本,然后重试。