用于 npm 发布的 Azure 管道无法按预期工作

Azure pipeline for npm publish does not work as expected

我对 Azure 有点陌生,今天我正在尝试创建一个发布管道 npm package to azure artifactory.

问题是 - 在管道 successfully built 之后,我可以在工件中看到已发布的包。然而,published package is almost empty. 只有 package.jsonreadme.md. 根本没有 dist 文件夹。

这是我的管道:

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
    npm publish
  displayName: 'npm install and build and publish'

此外,当我在本地构建项目并且 运行 npm publish - 包按应有的方式发布,所有文件都已就位。

我做错了什么吗?

将包发布到 npm 时,您需要使用您的凭据进行身份验证。由于 .npmrc 文件保存在您的计算机上,您可以 运行 在本地成功完成它。当 运行ning npm publish on CI 时,文件不存在,导致错误。请尝试以下步骤:

  1. 从此 URL 生成一个自动化访问令牌:https://www.npmjs.com/
  2. 转到您的存储库,并添加一个名为“.npmrc”的文件,输入内容 //registry.npmjs.org/:_authToken={your-token-value}

通知:

  1. 建议在Pipeline library中将access token设置为环境变量。
  2. package.json中的包名请使用小写字母。否则您将收到 400 error.

终于找到问题了

管道定义实际上是正确的,除了一件小事:

 versionSpec: '10.x'

节点版本不正确!那个相当老的。最初的定义是从一个 azure 官方手册中复制的,所以这个版本是某个非常古老的年份。

 versionSpec: '14.x'

构建成功,所有文件都在原位。

希望对这里的人有所帮助。