【发布时间】:2019-07-14 12:19:25
【问题描述】:
我正在尝试在 VueJS 应用程序的 CI 作业的 build 阶段使用环境变量。我正在使用 GitLab CI,其中一个可用的环境变量是 CI_COMMIT_SHORT_SHA,
build:
image: node:latest
stage: build
variables:
CI_COMMIT_SHORT_SHA: "$CI_COMMIT_SHORT_SHA"
artifacts:
paths:
- dist/
script:
- npm install --progress=false
- npm run build
- echo "Build Complete"
这是我尝试在 Vue 中使用此变量的方式:
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>This is a static site that is served with a CloudFront distribution in front of an S3 bucket.</p>
<p>The site is updated through a GitLab CI/CD pipeline.</p>
<p>Commit ref: {{ commit }}</p>
<p>Using cache invalidation</p>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
},
data(){
return {
commit: process.env.CI_COMMIT_SHORT_SHA
}
}
}
</script>
我没有看到这个变量通过。为了访问环境变量并将其显示在我的组件中,我还需要做些什么吗?
【问题讨论】:
-
你在使用 webpack 编译你的 SFC 吗?
-
@CodyG。我应该补充一点,这是一个 Vue CLI 3 生成的项目。所以是的,它在后台使用 webpack
-
好吧,
process.env.CI_COMMIT_SHORT_SHA可能在您导出的代码中,当在浏览器中运行时,它显然没有...我不知道如何将它包含在我的顶部头,但我正在调查它 -
对,所以我想弄清楚如何在构建时使用这种环境变量
-
我会做...个人...是让您的构建过程吐出一个 server_props.js 文件,您只需将其导入您的 vue 模板...所以 server_props.js :
module.exports = { vue_server_props: { commit: blahblah } }然后在你的 vue 模板中import {vue_server_props} from './config.js;然后把它放到你的 data() 中
标签: javascript vue.js npm gitlab-ci