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

Strapi(Node)应用修改.env环境变量后不生效问题排查

问题排查与解决方案

以下是针对你遇到的Strapi构建环境变量读取异常的排查方向和解决办法:

  • 检查Strapi环境变量加载规则
    Strapi除了NODE_ENV外,还支持STRAPI_ENV变量来指定环境配置文件,确保你构建脚本里同时设置了这两个变量,且项目根目录存在.env.stage文件,里面的Redis配置和.env.dev完全区分开。可以修改构建脚本验证变量:

    "scripts": {
      "build:stage": "NODE_ENV=stage STRAPI_ENV=stage echo $NODE_ENV $STRAPI_ENV && strapi build"
    }
    

    执行后确认终端输出的环境变量为stage stage,同时核对.env.stage里的Redis变量无拼写错误。

  • 检查配置文件的环境判断逻辑
    打开config/cache.js或config/database.js(取决于Redis的使用场景),查找判断环境的代码块:
    比如之前可能存在类似代码:

    const redisConfig = process.env.NODE_ENV === 'local' ? devRedisConfig : prodRedisConfig;
    

    确认是否已将local的判断替换为dev,并且添加了stage环境的分支逻辑,避免stage环境 fallback 到DEV配置。

  • 清理Strapi自身构建缓存
    Strapi会在项目根目录生成.strapi/cache缓存文件夹,这部分缓存不在npm/yarn缓存范围内。直接删除.strapi整个文件夹,再重新执行构建命令。

  • 排查终端环境变量残留
    终端可能残留之前设置的NODE_ENV变量,执行echo $NODE_ENV查看当前值,如果输出为dev,则执行unset NODE_ENV清空后再运行构建脚本。

  • 验证构建脚本的跨平台兼容性
    如果是跨平台开发,确保安装了cross-env依赖,否则Windows系统下环境变量设置会失效:

    1. 安装依赖:yarn add cross-env --dev
    2. 修改脚本:
      "scripts": {
        "build:stage": "cross-env NODE_ENV=stage STRAPI_ENV=stage strapi build"
      }
      
  • 临时添加日志验证变量读取
    在Redis配置代码中添加日志输出,确认实际读取的环境和变量值:

    console.log('当前环境:', process.env.NODE_ENV);
    console.log('Redis配置:', process.env.REDIS_HOST, process.env.REDIS_PORT);
    

    执行构建后查看终端日志,确认变量是否正确加载。

内容的提问来源于stack exchange,提问作者Senate No. 7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:15