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

PM2配置React.js环境变量时REACT_APP_TEST为何未定义?

问题原因与解决办法

你的核心问题是搞反了React环境变量的生效时机:React的REACT_APP_*系列环境变量是在项目构建阶段由构建工具(比如Create React App)注入到静态代码中的,而非运行时通过pm2传递。

你当前的操作是先构建好了React项目,再用pm2启动serve托管静态产物,这时候在pm2配置里设置REACT_APP_TEST完全没用——因为构建阶段根本没这个变量,静态文件里的相关引用早就被固化成undefined了。

正确操作步骤

  • 先注入环境变量再执行构建:
    根据操作系统不同,执行对应的构建命令:
    Linux/macOS:
    REACT_APP_TEST='password' npm run build
    
    Windows CMD:
    set REACT_APP_TEST=password&&npm run build
    
    Windows PowerShell:
    $env:REACT_APP_TEST='password'; npm run build
    
  • 构建完成后,再用pm2启动serve托管构建好的产物目录(确保你配置里的/var/www/web是构建后的build目录)。

进阶方案:用.env文件管理环境变量

如果需要在不同环境使用不同变量,推荐用.env文件统一管理:

  1. 创建.env.production文件:
    REACT_APP_TEST='password'
    NODE_ENV='production'
    
  2. 执行构建命令时指定环境模式:
    npm run build -- --mode production
    
    此时构建工具会自动读取.env.production中的变量,注入到最终的静态产物里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:05:05