Angular 如何在角度应用程序中显示应用程序构建版本

Angular 如何在角度应用程序中显示应用程序构建版本,angular,jenkins,build,versioning,Angular,Jenkins,Build,Versioning,我有一个jenkins管道,用于构建和部署角度应用程序。 是否可以在构建期间从Jenkins引入构建参数并在angular应用程序中显示 编辑: 其目的是在jenkins管道的构建时引入一个参数,该参数将在构建时接受输入,用于描述为其创建此构建的问题(例如:问题的JIRA编号)。然后需要在angular应用程序中显示此问题/错误修复编号,以便用户可以在应用程序页脚中看到此修复编号,并确定应用程序中部署的修复。我希望澄清这个问题 我从可用的环境变量buildnumber开始&尝试在Jenkins管

我有一个jenkins管道,用于构建和部署角度应用程序。 是否可以在构建期间从Jenkins引入构建参数并在angular应用程序中显示

编辑: 其目的是在jenkins管道的构建时引入一个参数,该参数将在构建时接受输入,用于描述为其创建此构建的问题(例如:问题的JIRA编号)。然后需要在angular应用程序中显示此问题/错误修复编号,以便用户可以在应用程序页脚中看到此修复编号,并确定应用程序中部署的修复。我希望澄清这个问题

我从可用的环境变量buildnumber开始&尝试在Jenkins管道脚本stage('Replace'){agent any when{environment name:'showVersionCheckout',value:'true'}步骤中使用以下脚本{

            checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xyz', url: 'https://abcd.git']]])
                script {
                    sh "sed -i -e 's/VERSION/${env.version}/g' src/environments/environment.dev.ts"
                }
            }
    }
在Angular应用程序中:导出常量环境={production:false,版本:'0.0.2'} 因此,当Jenkins管道构建angular应用程序时,我仍然看到旧值0.0.2,而不是我们使用sed替换的值。
有人能帮忙吗?

不完全是你想要的,但我在我的应用程序中执行以下操作。我有一个自定义的webpackconfig并定义这些变量:

module.exports = {
    plugins: [
        new webpack.DefinePlugin({
            'APP_VERSION': JSON.stringify(packageJSON.version),
            'APP_LASTCOMMIT': JSON.stringify(childProcess.execSync('git rev-parse HEAD').toString())
        })
    ]
}
环境技术服务:

declare var APP_VERSION;
declare var APP_LASTCOMMIT;
export const environment = {
    appName: 'WebCommander-DEV',
    appVersion: APP_VERSION,
    appLastCommit: APP_LASTCOMMIT,
    production: false,
};

我相信您可以调整此过程,将jenkins build id传递到构建过程中

我对jenkins不太熟悉,但是
TeamCity
有一个内置的预构建步骤,称为文件内容替换,在
Gitlab CI
中,您可以在脚本中使用预定义变量列表,因此我使用
sed
来恢复t:

sed -i "s|regex to be replaced|replacement with $VARIABLE|" fileToBeModified.ts

我能够使用链接在角度应用程序中显示构建编号

试着扩展你的问题,是是是这个问题的最佳答案,但可能不会像预期的那样帮助你。@JanZahradnik-我试图详细描述这个问题。