You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI触发AWS CDK时TypeScript无法正确读取环境变量

解决GitLab CI环境变量在TypeScript中读取不到的问题
  • 确认环境变量是否传递至Node.js进程
    GitLab CI的变量默认会注入流水线的Shell环境,但如果你的TypeScript代码是通过npm/yarn脚本启动的,要确保启动脚本时Shell的环境变量能被Node.js进程继承。如果是在容器中运行任务,需确认变量已正确传入容器实例。

  • 通过dotenv管理环境变量(适用于Node.js项目)
    若项目需要在构建或运行阶段读取环境变量,可在GitLab CI的脚本中将变量写入.env文件,再通过dotenv加载:

# .gitlab-ci.yml 配置
script:
  - echo "URL_ORIGIN=$URL_ORIGIN" > .env
  - npm install
  - npm run build
  - npm run start
// TypeScript代码
import dotenv from 'dotenv';
dotenv.config();
const urlOrigin = process.env.URL_ORIGIN;
  • 前端构建工具的变量注入(Vite/Webpack等)
    如果是前端项目,浏览器环境无法直接访问Node.js的process.env,需借助构建工具注入变量:

    • Vite:变量需以VITE_为前缀命名,比如GitLab CI中配置VITE_URL_ORIGIN: "url",TS中通过import.meta.env.VITE_URL_ORIGIN读取。
    • Webpack:使用DefinePlugin在配置中注入变量,示例:
      // webpack.config.js
      const webpack = require('webpack');
      module.exports = {
        plugins: [
          new webpack.DefinePlugin({
            'process.env.URL_ORIGIN': JSON.stringify(process.env.URL_ORIGIN)
          })
        ]
      };
      
      之后在TS中直接用process.env.URL_ORIGIN读取。
  • 检查变量名大小写与作用域
    环境变量在Linux/macOS环境下大小写敏感,确保GitLab CI配置的变量名和TS中读取的完全一致;同时确认变量配置在全局variables块,或当前运行TS代码的job的variables块中,避免作用域不匹配。

内容的提问来源于stack exchange,提问作者Mahmoud Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 09:42:39