Reactjs 如何在React构建中使用环境变量?

Reactjs 如何在React构建中使用环境变量?,reactjs,npm,Reactjs,Npm,在我的React应用程序中,我使用了一些环境变量,这些变量会不时地改变。 我注意到在运行“npm运行构建”之后,所有环境路径都被硬编码。例如。 const server_address=process.env.REACT_APP_server_address; 变成 反应应用程序服务器地址:http://192.168.42.135:3000 有没有办法在构建之后仍然在部署中使用环境变量?直接解决,Javascript无法访问您正在执行它的操作系统的环境变量,一旦编译了React并生成了JS,也

在我的React应用程序中,我使用了一些环境变量,这些变量会不时地改变。 我注意到在运行“npm运行构建”之后,所有环境路径都被硬编码。例如。 const server_address=process.env.REACT_APP_server_address; 变成 反应应用程序服务器地址:http://192.168.42.135:3000


有没有办法在构建之后仍然在部署中使用环境变量?

直接解决,Javascript无法访问您正在执行它的操作系统的环境变量,一旦编译了React并生成了JS,也就是说,不再从环境中访问变量,也没有在编译中真正授予React的访问权限n、 但是到在节点上运行的transpiler或bundler(节点始终具有访问权限:-))。 但这里有一些解决办法

  • API,在调用时返回最新的秘密
  • 每当机密更改时,套接字将新机密推送到应用程序
  • 快乐编码同志:-)


    不,如果您需要一个“不时”动态变化的变量,“您应该在应用程序中创建一个变量,该变量会根据某些操作进行更改。您无法访问
    process.env
    ,在您构建运行客户端的应用程序后,它只能在服务器端访问。我认为存在误解。我不想让用户修改变量,但需要web服务器管理员。例如,该应用程序将部署在不同的网络中,因此我想通过修改.env并重新启动web服务器来调整服务器地址,因为在使用npm start构建之前,这是可能的。您是否尝试过此->??它的角度,但我认为你可以使用it@uppercut然后,您需要生成一个新的构建,该构建为环境变量使用适当的值。你不能按照你的要求去做-一旦客户端代码被生成并运行客户端,它就无法访问服务器端环境变量。我认为作者不想使用用户计算机上的.env,而是web服务器上的.env。传递这样的秘密不是一个好主意,也会带来巨大的安全风险。如果不为每个环境创建一个新的构建,OP所要求的是不可能的。@goto1同意,这是有风险的,但可以是令牌或其他东西……这是不能妥协的