Jenkins构建时怎么自动替换前端项目的环境变量?

Newb.梓熙 阅读 31

我用Jenkins部署Vue项目,本地开发用的是.env.development,生产用.env.production,但Jenkins构建时总是读不到正确的环境变量。我试过在Jenkinsfile里用sh 'export VUE_APP_API_BASE=/prod/api',但好像没生效,打包出来的还是开发地址。是不是要在webpack或者vue.config.js里额外处理?

我来解答 赞 6 收藏
二维码
手机扫码查看
2 条解答
上官凌薇
在vue.config.js里加这个配置,把Jenkins的环境变量注入进去:

module.exports = {
chainWebpack: config => {
config.plugin('define').tap(args => {
args[0]['process.env'].VUE_APP_API_BASE = JSON.stringify(process.env.VUE_APP_API_BASE)
return args
})
}
}


然后Jenkinsfile里改成这样:

environment {
VUE_APP_API_BASE = '/prod/api'
}


这样打包出来的就是生产环境配置了
点赞 2
2026-03-09 11:08
a'ゞ彦会
Jenkins的sh每步都是独立环境,export只在当前行有效,直接把变量写在构建命令前面就行。

sh 'VUE_APP_API_BASE=/prod/api npm run build'
点赞 3
2026-03-04 00:11