用于 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.json
和 readme.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 时,文件不存在,导致错误。请尝试以下步骤:
- 从此 URL 生成一个自动化访问令牌:https://www.npmjs.com/
- 转到您的存储库,并添加一个名为“
.npmrc
”的文件,输入内容 //registry.npmjs.org/:_authToken={your-token-value}
通知:
- 建议在Pipeline library中将access token设置为环境变量。
package.json
中的包名请使用小写字母。否则您将收到 400 error
.
终于找到问题了
管道定义实际上是正确的,除了一件小事:
versionSpec: '10.x'
节点版本不正确!那个相当老的。最初的定义是从一个 azure 官方手册中复制的,所以这个版本是某个非常古老的年份。
versionSpec: '14.x'
构建成功,所有文件都在原位。
希望对这里的人有所帮助。
我对 Azure 有点陌生,今天我正在尝试创建一个发布管道 npm package to azure artifactory.
问题是 - 在管道 successfully built
之后,我可以在工件中看到已发布的包。然而,published package is almost empty.
只有 package.json
和 readme.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 时,文件不存在,导致错误。请尝试以下步骤:
- 从此 URL 生成一个自动化访问令牌:https://www.npmjs.com/
- 转到您的存储库,并添加一个名为“
.npmrc
”的文件,输入内容//registry.npmjs.org/:_authToken={your-token-value}
通知:
- 建议在Pipeline library中将access token设置为环境变量。
package.json
中的包名请使用小写字母。否则您将收到400 error
.
终于找到问题了
管道定义实际上是正确的,除了一件小事:
versionSpec: '10.x'
节点版本不正确!那个相当老的。最初的定义是从一个 azure 官方手册中复制的,所以这个版本是某个非常古老的年份。
versionSpec: '14.x'
构建成功,所有文件都在原位。
希望对这里的人有所帮助。