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

CircleCI项目配置环境变量后,JS文件无法通过process.env访问问题

解决CircleCI环境变量在JS中返回undefined的问题

问题核心

你在CircleCI项目中设置的环境变量,虽然通过$BASH_ENV导出到了shell会话,但Node.js进程不会自动继承这些变量,除非明确把变量传递给Node进程或通过构建工具暴露。

具体解决方案

  • 直接在Node启动命令中传递变量
    如果你的启动命令是node app.js,修改为:

    ENV_VAR="$ENV_VAR" node app.js
    

    这样Node进程的环境中会直接包含该变量,process.env.ENV_VAR即可正常读取。

  • 简化CircleCI配置,利用内置变量注入
    CircleCI默认会把项目设置的环境变量注入到所有run步骤的环境中,不需要手动写入$BASH_ENV(动态生成变量的场景除外)。你的YAML可以简化为:

    jobs:
      build:
        ...
        steps:
          - run: node app.js
    

    只要项目中已正确设置ENV_VAR,Node进程就能直接访问到该变量。

  • 针对前端构建工具的配置
    如果使用Webpack、Vite等构建工具,需要手动配置暴露环境变量:

    • Webpack 用DefinePlugin:
      const webpack = require('webpack');
      
      module.exports = {
        plugins: [
          new webpack.DefinePlugin({
            'process.env.ENV_VAR': JSON.stringify(process.env.ENV_VAR)
          })
        ]
      };
      
    • Vite 配置define选项:
      export default {
        define: {
          'process.env.ENV_VAR': JSON.stringify(process.env.ENV_VAR)
        }
      };
      
  • 基础检查项

    • 确认环境变量名称拼写完全一致(大小写敏感);
    • 确认变量是设置在项目全局,而非仅针对特定分支或上下文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:55:08