vue.js - 如何使用 Gitlab 将 Git 提交哈希注入 Vue 应用程序?
问题描述
我想将 Git 哈希打印到我的 Vue.js 应用程序的页脚中。我已按照此问题的说明进行操作:
但就是不能让它工作。未为应用设置 process.env.VUE_APP_GIT_COMMIT 变量。.env 文件中设置的变量可以正常工作。
.gitlab.ci.yml:
build-frontend:
image: node:10.16.3-stretch
stage: build
before_script:
- cd frontend
variables:
VUE_APP_GIT_COMMIT: "$CI_COMMIT_SHORT_SHA"
script:
- npm install -g @vue/cli@3.11.0
- npm install
- npm run staging
artifacts:
paths:
- frontend/dist/
expire_in: 1 hour
deploy-staging-frontend:
image: python:3.7.4
stage: deploy
script:
- pip install awscli
- aws s3 sync --delete frontend/dist s3://bucket
解决方案
好的,经过一些研究,该vue-cli-service build
命令似乎只查看项目根目录中的点文件。(各种 .env 文件)
您可以在 Gitlab CI 选项中设置所有变量,然后如 Sergey 在评论中所述,将这些变量复制到 .env 文件中。现在,当 vue-cli 构建项目时,它会将这些值注入到转译的脚本中。
您可以在构建项目之前发出这样的命令:
env | grep 'VUE_APP_' > .env
我还使用了在推入暂存分支时构建的暂存环境。因此,我将这些变量设置到 Gitlab 中:
- VUE_APP_VAR1=foo
- VUE_APP_VAR2=酒吧
- VUE_ACCEPT_VAR1=foo
- VUE_ACCEPT_VAR2=条
由于 vue-cli 希望变量从我开始,VUE_APP_
我用 sed 替换:
env | grep 'VUE_ACCEPT_' | sed 's/VUE_ACCEPT_/VUE_APP_/' > .env
推荐阅读
- reactjs - 在移动按键反应期间输入不聚焦
- amazon-web-services - 如何在红移中按属性创建到期
- shopify - Shopify 使用 SEO 句柄链接产品
- logging - GCP 日志路由器接收器未将日志路由到主题?
- reactjs - (使用React)为什么使用onChange事件执行onClick时提交按钮并导致空字符串?(使用状态问题)
- jwt - react-admin 身份验证流程不起作用
- javascript - 我无法使用在同一对象内创建的方法修改对象的属性。我正在尝试使用 foreach 然后 console.log 未定义
- ssl - 使用 SSL 连接到 IBM mq:证书更新后无法连接
- python - CVXPY 中的“G”是什么以及如何修复它
- python - 创建滚动平均熊猫