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

Reactjs 有没有办法在monorepo中为多个Create React应用程序共享一个.env文件?,reactjs,create-react-app,dotenv,react-scripts,Reactjs,Create React App,Dotenv,React Scripts,我有一个Lerna monorepo,有几个CRA应用程序和Node.js服务。CRA应用程序具有公共环境变量,因此我希望能够创建一个它们都共享的.env文件 不幸的是,到目前为止,我的两次尝试都失败了 我想也许我可以将dotenv添加到每个CRA应用程序中,并在每个应用程序的入口点使用dotenv.config{path:'…'}。我很惊讶env变量都是未定义的,尽管它们的前缀是REACT_APP_ 我尝试通过将react scripts start命令更改为react scripts sta

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

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

我想也许我可以将dotenv添加到每个CRA应用程序中,并在每个应用程序的入口点使用dotenv.config{path:'…'}。我很惊讶env变量都是未定义的,尽管它们的前缀是REACT_APP_

我尝试通过将react scripts start命令更改为react scripts start-r dotenv/config dotenv\u config\u path=/custom/path/to/your/env/vars来加载shared.env。显然,这不起作用,因为节点没有执行dotenv,但react脚本没有我可以找到的使用文档,并且查看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",
  "eject": "react-scripts eject"
}

<>这在很多CRA应用程序中都有一个共享.Env的理想效果,虽然我不确定是否有一个更干净/更好的方法。

作为一个选项,你可以考虑使用别名。意思是将您的.ev文件放到存储库的根目录中,并对每个包创建别名,如LN-S [源] [目的地]。这个例子将对MaOS工作,不确定其他OSS。< /P> < P>作为选项,您可以考虑使用别名。意思是将你的.env文件放入存储库的根目录中,并为每个包创建别名,如so ln-s[source][destination]这个示例适用于MacOS,但不确定是否适用于其他OS。

这很好,感谢你的好主意。老兄,我没有话,这很好用,非常感谢你。这很好用,谢谢你的好主意。老兄,我没话可说,这是一项令人惊讶的工作,非常感谢。