npm 包:processenv-priority-env-merger 使用教程

阅读时长 4 分钟读完

在前端开发中,我们经常需要在不同的环境中测试和部署应用程序,每个环境都需要不同的配置和环境变量。使用环境变量是一种灵活的方式来处理不同环境之间的动态配置,但在一些情况下,我们可能需要合并不同优先级的环境变量来进行配置。在这种情况下,就可以使用 npm 包:processenv-priority-env-merger。

什么是 processenv-priority-env-merger?

processenv-priority-env-merger 是一个 Node.js 模块,它允许您将不同的环境变量合并到一个对象中,以便在应用程序中方便地使用。该模块将优先使用较高优先级的环境变量覆盖较低优先级的变量。

安装

可以通过 npm 安装 processenv-priority-env-merger:

使用

在您的 JS 文件中引入 processenv-priority-env-merger:

然后,您可以使用 envMerger() 函数,并将您的环境变量对象传递给它,该函数将返回一个对象,其中包含合并的变量。

假设您有以下两个环境变量:

您可以将这些变量合并到一个对象中:

-- -------------------- ---- -------
----- --------- - -----------
  -------- -
    ---- ------
    ---- -----
  --
  ------ -
    ---- ------
    ---- -----
  -
---

-----------------------

这将输出以下内容:

您可以看到,FOO 变量已从 local 环境覆盖了 default 环境,并且 BAR 变量已添加到 mergedEnv,因为它只在 local 环境中定义。

环境变量优先级

processenv-priority-env-merger 按照以下顺序合并环境变量:

  1. process.env(当前进程的环境变量);
  2. default 环境变量对象(每个变量的默认值);
  3. 以特定顺序指定的其他环境变量对象。

在上面的示例中,我们指定了 default 和 local 环境对象。因此,如果 local 环境中未定义变量,则使用相应变量的默认值。

特定顺序的环境变量

您可以为 envMerger() 函数提供多个环境变量对象,并按特定顺序将它们传递给函数以定义变量优先级。例如,假设您有以下环境变量对象:

-- -------------------- ---- -------
----- ---------- - -
  ---- ------
  ---- ------
  ---- -----
--

----- -------- - -
  ---- ------
  ---- -----
--

您可以定义另一个环境变量对象,并将它们传递给 envMerger() 函数按以下顺序合并:

在这种情况下,合并顺序如下:

  1. 使用 process.env 中所有变量;
  2. 使用 defaultEnv 中未在 process.env 中定义的所有变量;
  3. 使用 localEnv 中未在 process.env 或 defaultEnv 中定义的所有变量。

注意事项

在使用 processenv-priority-env-merger 时,请注意以下几点:

  • 请勿将应用程序保密信息保存在环境变量中;
  • 默认(default)环境变量对象中的变量将被认为是最低优先级。如果它们也在其他环境中定义,则将优先使用其他环境中的值;
  • envMerger() 函数不会在 process.env 中删除或更改环境变量的地址。因此,如果您改变了返回的对象中的变量,则 process.env 中的变量也会被更改。

结论

processenv-priority-env-merger 是一个非常有用的工具,它使您可以轻松地将不同环境中的环境变量合并到一个对象中。使用此模块,您可以易于地处理不同环境的配置,并保持代码的干净和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a730d09270238226ad

纠错
反馈