Npm 使用package.json中的内部版本号
我在Azure devops中有一个节点项目,希望将构建编号设置为当前package.json中的任何内容,并附加一个编号。因此,如果my package.json说版本是0.0.1-beta,那么构建号应该是Npm 使用package.json中的内部版本号,npm,azure-devops,Npm,Azure Devops,我在Azure devops中有一个节点项目,希望将构建编号设置为当前package.json中的任何内容,并附加一个编号。因此,如果my package.json说版本是0.0.1-beta,那么构建号应该是0.0.1-beta+20190215.1 使用npm:npm-view-version很容易获得版本字符串,但我无法确定在管道中的何处存储和注入它以将其用作构建号。据我所知,构建编号只能设置为硬编码值或通过“手动”设置的变量,而不能像使用命令输出那样以动态方式设置 我尝试使用变量,首先是
0.0.1-beta+20190215.1
使用npm:npm-view-version
很容易获得版本字符串,但我无法确定在管道中的何处存储和注入它以将其用作构建号。据我所知,构建编号只能设置为硬编码值或通过“手动”设置的变量,而不能像使用命令输出那样以动态方式设置
我尝试使用变量,首先是一个自定义变量,但它不起作用。我还发现了一个名为Build.Buildname
的变量,但它似乎无法写入
有什么想法吗
这是我正在试验的base pipeline.yaml的相关部分:
steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'
displayName: 'Install Node.js'
- script: |
npm install
npmVersionString=$(npm view <package-name> version)
echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString
npm run build
displayName: 'npm install, set buildnumber and build'
步骤:
-任务:NodeTool@0
投入:
versionSpec:'8.x'
displayName:'Install Node.js'
-脚本:|
npm安装
npmVersionString=$(npm视图版本)
echo##vso[task.setvariable=build.buildnumber]$npmVersionString
npm运行构建
displayName:'npm安装,设置buildnumber和build'
要在生成期间更新生成编号,您不能只更新变量build.BuildNumber
与每个变量一样,有一个特殊的命令来执行此操作:
##vso[build.updatebuildnumber]{build number}
因此,在您的情况下,请更换这一行
echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString
echo "##vso[build.updatebuildnumber]$npmVersionString"
用这条线
echo ##vso[task.setvariable variable=build.buildnumber]$npmVersionString
echo "##vso[build.updatebuildnumber]$npmVersionString"
(如果需要,请不要忘记附加内部版本号)
范例
- script: |
npmVersionString=$(node -p "require('./package.json').version")
echo "##vso[build.updatebuildnumber]$npmVersionString"
displayName: 'set build number'