reactjs - Nx React 在运行时注入环境变量
问题描述
我有一个带有多个反应应用程序的 Nx monorepo。
我希望能够运行一次构建,然后将相同的构建部署到多个环境(例如开发、测试、生产)。
我以前在不使用 Nx 的项目中所做的,是在文件夹中有一个env.js
文件,/public
并在头部有一个脚本标签index.html
来获取env.js
文件。
是否可以使用 Nx 达到相同的结果?
解决方案
NX
默认情况下为您提供一个/environments/environment.ts
文件,您可以在其中存储环境变量。
您可以使用以下命令将其导入您的应用程序:
import { environment } from './environments/environment'
您可以在构建过程中使用该workspace.json
文件交换环境。
...
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "apps/client/src/environments/environment.ts",
"with": "apps/client/src/environments/environment.prod.ts"
}
],
...
如果您想将环境变量注入到您的index.html
文件中,您必须在构建应用程序时实际设置这些变量。对于本地构建,
本地
我在.env
反应项目的根目录创建了一个文件并将变量放在那里
托管环境
我们在构建过程中将 envvars 添加到我们的 CI 中。
- name: Build Applications
run: |
NX_DOMAIN_NAME="My Super Domain" npx nx run-many --target=build --configuration=production
https://nx.dev/latest/react/guides/environment-variables#using-environment-variables-in-indexhtml
推荐阅读
- c# - 任务
,为什么Test吞下异常并永远循环,而Test_1按预期抛出异常? - vba - SaveAs 产生不兼容的文件类型和扩展名错误(运行时错误 6294)
- javascript - 如何在 ajax 请求上正确运行 child_process.exec?
- python - brownie-config.yaml 中的 ScannerError
- javascript - 是否有可能在客户端执行 Pandas/Scipy/Numpy 的 Web 应用程序?
- css - AMP 优化器分离关键帧警告在“关键帧”中发现无效的关键帧属性“左”未移动到样式 [amp-keyframes]
- javascript - 从一张桌子获取待处理的好友请求
- caddy - Caddy反向代理,优先文件,然后reverse_proxy
- python - 如何在熊猫中按开始时间和结束时间组合两个数据帧?
- laravel - Laravel POST 路由可以返回一个视图而不是重定向到另一个路由吗?