首页 > 解决方案 > 如何自动更新 package.json 文件的版本号

问题描述

我需要package.json通过 jenkins 自动升级版本。我们有将通过 Jenkins 构建的节点项目,一切都很好,但是当我们每次想要升级时versionpackage.json我们需要手动更改 package.json,然后通过 GitLab 推送到 Jenkins。

有什么办法可以自动化这一步吗?

这是詹金斯文件

  pipeline {
  agent any
 stages {
    stage('Build') {
      steps {
         checkout([$class: 'GitSCM', branches: [[name: 'master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ID', url: 'https://gitlab.com/company/website.git']]])
             sh "pwd"
             sh "npm install"
             sh "npm run build"  
          }
       }
        stage('deploy') {
          steps {
                 sh "scp -v -o StrictHostKeyChecking=no -r /var/lib/jenkins/workspace/project/build/* ubuntu@prod:/var/www/project/"
         }
       }       
     }      
   }

这是 package.json 文件

  "name": "my-project",
  "version": "1.1.24",
  "description": "web application",
  "main": "index.js",
  "repository": "https://gitlab.com/",
  "private": true,

标签: node.jsjenkins

解决方案


使用 linux 中的 awk 命令行工具解决了问题

#!/usr/bin/awk

awk -F'["]' -v OFS='"'  '/"version":/{split($4,a,".");$4=a[1]+1"."a[2]"."a[3]+1};1' ./package.json > ./package2.json && mv ./package2.json ./package.json

推荐阅读