我有一个带有多个 CRA 应用程序和 Node.js 服务的 Lerna monorepo。CRA 应用程序具有公共环境变量,因此我希望能够创建一个它们共享的 .env 文件。
不幸的是,到目前为止我的两次尝试都失败了。
我想也许我可以添加dotenv到每个 CRA 应用程序并dotenv.config({ path: '...' })在每个应用程序的入口点使用。我很惊讶 env vars 都是未定义的,即使它们以REACT_APP_
我尝试通过将react-scripts start命令更改为.env 来加载共享的 .env react-scripts start -r dotenv/config dotenv_config_path=/custom/path/to/your/env/vars。显然这不起作用,因为 dotenv 不是由节点执行的,但react-scripts没有我可以找到的使用文档,并且查看node_modules/react-scripts/scripts/start.js并没有提供传递参数的明显方法。
所以,我想我的问题是:我可以在多个 CRA 应用程序之间共享一个 .env 文件,而无需为每个应用程序手动弹出和设置 .env 路径吗?如果可能的话,我想避免这种情况。
谢谢!
- 更新 -
我在发布几分钟后找到了解决方案(抱歉!)。
我能够安装 dotenv-cli 并将每个 CRA 应用程序的脚本更改为:
"scripts": {
"start": "dotenv -e ../../.env react-scripts start",
"build": "dotenv -e ../../.env react-scripts build",
"test": "dotenv -e ../../.env react-scripts test", …Run Code Online (Sandbox Code Playgroud)