node.js - 为基于 create-react-app 的项目运行 npm build 后在运行时读取环境变量
问题描述
我是 React 新手,我将部署一个 React 项目。React 项目由 create-react-app 创建,然后生产代码由“npm build”构建,并由 Express 托管。
在项目中,有一些对 API 服务器的 fetch 调用,其 URL 是可配置的。在开发中,我可以通过在 .env 文件(例如 REACT_APP_API_URL= http://somewhere/)的环境变量中设置它并在代码中导入来做到这一点。
但是,似乎这些环境变量在运行“npm build”后变为静态,我无法再更改它,即使在我启动服务器时执行“REACT_APP_API_URL= http://otherserver/ node express_server.js”之类的操作。
我想问一下“npm build”之后是否有任何方法可以为代码获取一些配置,最好是从文件或.env中获取,从环境变量中获取对我来说也可以。
谢谢你。
解决方案
环境变量在构建步骤中嵌入到文件中,因此您需要在调用react-scripts build
.
例子
"scripts": {
"start": "cross-env REACT_APP_API_URL=http://somewhere/ react-scripts start",
"build": "cross-env REACT_APP_API_URL=http://otherserver/ react-scripts build",
}
推荐阅读
- node.js - 对象字面量只能指定已知属性,而“模块元数据”类型中不存在“模块”
- r - 根据其他单元格的匹配条件填充空 tibble 空单元格
- mongodb - Spring Data Mongo - 带来没有嵌入文档的分页数据
- git - Nifi Registry Git 连接器
- android - png中的图标用于底部导航栏android
- ios - Swift 中是否有获取某个国家/地区的 ISO 3166-2 代码(省、州)的功能?
- django - Django 搜索字段从模型字段列表中选择选项
- java - 为 mi 方法静态创建 @Bean
- ansible - 如何使用 with_items register.results
- microservices - 从微服务生成 jhipster 实体后显示默认日期时间错误