使用 Azure Pipelines 发布 npm 包(YAML/经典)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

使用 Azure Pipelines,可以将 npm 包发布到组织和其他组织中的 Azure Artifacts 源。 本文介绍如何使用 YAML 管道和经典管道将 npm 包发布到内部源和外部源。

先决条件

将包发布到同一组织中的源

注意

若要使用 Azure Pipelines 将包发布到源,项目集合生成服务和项目的生成服务标识都必须配置为源发布者(参与者)。 有关更多详细信息,请参阅添加新用户/组

steps:
- task: NodeTool@0
  inputs:
    checkLatest: true

- task: npmAuthenticate@0
  displayName: 'Authenticate to Azure Artifacts feed'
  inputs:
    workingFile: .npmrc

- script: |
   npm publish
  displayName: Publish

将包发布到其他组织中的源

要将包发布到另一个 Azure DevOps 组织中的源,你必须首先在目标组织中创建个人访问令牌。

导航到托管目标源的组织,并使用打包>读取和写入范围创建个人访问令牌。 复制你的个人访问令牌,以供在以下部分中使用。

创建服务连接

  1. 登录到管道运行所在的 Azure DevOps 组织,然后导航到你的项目。

  2. 导航到项目设置>服务连接

  3. 依次选择“新建服务连接”、“npm” 和“下一步”

  4. 选择“用户名和密码”作为“身份验证方法”,然后输入“注册表 URL”。 输入“用户名”(占位符,因为 Azure Pipelines 将使用.npmrc配置文件和之前创建的个人访问令牌进行身份验证)。 对于密码,请粘贴个人访问令牌。 提供服务连接的名称,然后选中“授予对所有管道的访问权限”复选框。

  5. 完成时选择保存

发布包

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

  2. 选择管道,然后选择您的管道定义。

  3. 选择编辑,然后将以下代码片段添加到 YAML 管道。

    - task: NodeTool@0
      inputs:
        checkLatest: true
    
    - task: npmAuthenticate@0
      displayName: 'Authenticate to Azure Artifacts feed'
      inputs:
        workingFile: .npmrc
        customEndpoint: <SERVICE_CONNECTION_NAME>
    
    - script: |
       npm publish  
      displayName: Publish