npm 包 meri-dotenv 使用教程

阅读时长 5 分钟读完

前言

在开发前端应用时,我们通常需要在代码中添加敏感信息,如 API 密钥、数据库密码等,这些信息不能直接暴露在源码中,因此需要将这些敏感信息写在配置文件中,并通过环境变量加载进来。在 Node.js 中,我们可以使用 dotenv 包来实现这个目的。不过,dotenv 的语法较为简单,不能满足一些特殊需求,这时候就需要一个更强大的 dotenv 包——meri-dotenv。

meri-dotenv 是什么?

meri-dotenv 是一个支持文件和目录归并和基于环境变量的配置解析器,它通过读取指定路径下的配置文件,并将其中的环境变量加载到 process.env 对象中。与 dotenv 不同的是,meri-dotenv 支持对配置文件进行归并,支持将多个配置文件归并为一个配置文件。同时,meri-dotenv 还支持将配置文件归并到一个名为全局的环境变量集合中。

meri-dotenv 的安装

您可以通过 npm 包管理器安装 meri-dotenv,执行以下命令:

如何使用 meri-dotenv?

在使用 meri-dotenv 前,您需要创建配置文件并将其中的敏感信息写在文件中,在配置文件中您可以使用 $VARIABLE 或者 ${VARIABLE} 这样的语法来引用环境变量,例如:

在获得配置文件后,您可以使用 meri-dotenv 包的 load 方法来加载配置文件,并将其中的环境变量添加到 process.env 对象中。该方法的使用方法如下:

其中,<path> 参数是您配置文件的路径,可以是一个文件或一组文件的目录,<options> 是一个可选的对象,可以配置 load 方法的行为。load 方法会返回一个对象,其中包含 errorenv 两个属性。

error 属性是一个 Error 对象,表示如果在加载配置文件时发生错误,则提供错误信息;env 属性是包含环境变量的对象。

load 方法的 options 参数

options 参数是一个对象,包含了一系列配置参数,用来定制 meri-dotenv 的行为。以下是 options 参数的可选项:

encoding

  • 类型:string
  • 默认值:'utf8'

用于读取和写入配置文件的编码。

merge

  • 类型:boolean
  • 默认值:false

是否将多个配置文件归并到一个文件中,如果传入该参数,则 meri-dotenv 将读取目录下的所有文件,并将它们的内容归并到一个配置文件中,任何同名的变量都将被后来的变量所覆盖。

safe

  • 类型:boolean
  • 默认值:false

是否禁用不存在的文件错误,如果开启,将跳过不存在的文件而不是抛出错误。

allowEmptyValues

  • 类型:boolean
  • 默认值:false

是否允许空值作为环境变量的值,如果关闭,将抛出一个异常。

meri-dotenv 的示例代码

以下是一个基本的示例代码,其中我们使用了默认的配置参数,只传入了配置文件的路径:

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

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

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

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

在上述示例中,我们首先通过 load 方法加载了配置文件,如果加载出错,则打印错误信息并退出应用程序,否则将其中的环境变量输出到控制台。

以下是一个更为复杂的示例代码,其中使用了所有可选的配置参数:

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

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

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

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

在上述示例中,我们向 load 方法传入了所有的可选参数,其中 merge: true 表示将所有配置文件归并到一个文件中,safe: false 表示禁用不存在的文件错误,allowEmptyValues: true 表示允许环境变量的值为空,encoding: 'utf8' 表示使用 utf8 编码读取和写入配置文件。这样,我们可以在输出环境变量时获取配置文件中所有的键值对。

参考文献

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

纠错
反馈