12

是否可以在使用纱线工作区设置的 monorepo 的子文件夹之间共享配置变量/环境变量?我们有一个项目的 monorepo,其中几个子文件夹是使用 create-react-app 构建的项目。在这些单独的文件夹中,我们可以使用 .env 文件来指定配置值,当我们在单独级别使用 package.jsons 中的构建/启动脚本时,它们会很好地使用。

但是,我们还有其他子文件夹,它们只是导入 CRA 应用程序的库。我们想在这些库中指定 config/env 变量,但到目前为止还没有找到一种方法来在我们构建或启动导入库的项目时传播这些值。已经在库本身以及 CRA 应用程序根文件夹中尝试了 .env 文件,但似乎没有任何效果......

4

2 回答 2

2

考虑读取的含义,.env因为这可能会对第三方库和依赖项产生不利影响process.env

您可以使用https://github.com/motdotla/dotenv之类的库来执行此操作:

  1. 在你的库中设置一个.env.file文件:
- src
  - index.js
- .env.file

  1. 在 lib index.js 文件中:
import dotenv from 'dotenv'
import path from 'path'

dotenv.config({
  path: path.join(__dirname,'..','.env.file'),
})

// the rest of the file...

于 2020-10-23T16:46:25.640 回答
1

您可以使用它find-yarn-workspace-root来查找存储库的根目录。

import workspacesRoot from "find-yarn-workspace-root";
import { config as dotenv } from "dotenv";

const rootDirectory = workspacesRoot();
dotenv({ path: `${rootDirectory}/.env` });
于 2021-04-24T15:32:22.773 回答