小编uci*_*arn的帖子

有没有办法在 monorepo 中为多个 Create-React-App 应用程序共享单个 .env 文件?

我有一个带有多个 CRA 应用程序和 Node.js 服务的 Lerna monorepo。CRA 应用程序具有公共环境变量,因此我希望能够创建一个它们共享的 .env 文件。

不幸的是,到目前为止我的两次尝试都失败了。

  1. 我想也许我可以添加dotenv到每个 CRA 应用程序并dotenv.config({ path: '...' })在每个应用程序的入口点使用。我很惊讶 env vars 都是未定义的,即使它们以REACT_APP_

  2. 我尝试通过将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)

reactjs react-scripts create-react-app dotenv

1
推荐指数
1
解决办法
789
查看次数

标签 统计

create-react-app ×1

dotenv ×1

react-scripts ×1

reactjs ×1