查看源代码 Config.Reader (Elixir v1.16.2)

用于读取使用 Config 定义的配置文件的 API。

作为提供者

Config.Reader 也可以用作 Config.Provider。 配置提供者在发布期间用于自定义应用程序的配置方式。 当用作提供者时,它需要一个参数:要读取和加载的文件的配置路径(如 Config.Provider.config_path/0 所述),用于在系统启动期间使用。

例如,如果您期望目标系统在绝对路径中具有配置文件,则可以在 mix.exsdef project 部分中添加以下内容:

releases: [
  demo: [
    config_providers: [
      {Config.Reader, "/etc/config.exs"}
    ]
  ]
]

或者,如果您想在发布时读取自定义路径:

config_providers: [{Config.Reader, {:system, "RELEASE_ROOT", "/config.exs"}}]

您也可以将关键字列表选项传递给阅读器,其中 :path 是必填键:

config_providers: [
  {Config.Reader,
   path: "/etc/config.exs",
   env: :prod,
   imports: :disabled}
]

请记住,Mix 默认情况下会加载 config/runtime.exs。 有关更多示例和场景,请参阅 Config.Provider 模块。

总结

函数

为给定的 file 评估配置 contents

合并两个配置。

读取配置文件。

读取给定的配置文件并返回带有其导入的配置。

函数

链接到此函数

eval!(file, contents, opts \\ [])

查看源代码 (自 1.11.0 起)
@spec eval!(Path.t(), binary(), keyword()) :: keyword()

为给定的 file 评估配置 contents

接受与 read!/2 相同的选项。

链接到此函数

merge(config1, config2)

查看源代码 (自 1.9.0 起)
@spec merge(keyword(), keyword()) :: keyword()

合并两个配置。

配置将合并在一起,第二个配置中的值优先于第一个配置中的值(如果发生冲突)。 如果两个值都设置为关键字列表,则会深度合并它们。

示例

iex> Config.Reader.merge([app: [k: :v1]], [app: [k: :v2]])
[app: [k: :v2]]

iex> Config.Reader.merge([app: [k: [v1: 1, v2: 2]]], [app: [k: [v2: :a, v3: :b]]])
[app: [k: [v1: 1, v2: :a, v3: :b]]]

iex> Config.Reader.merge([app1: []], [app2: []])
[app1: [], app2: []]
链接到此函数

read!(file, opts \\ [])

查看源代码 (自 1.9.0 起)
@spec read!(
  Path.t(),
  keyword()
) :: keyword()

读取配置文件。

选项

  • :imports - 已导入路径的列表,或 :disabled 以禁用导入

  • :env - 配置文件运行的环境。 有关示例用法,请参阅 Config.config_env/0

  • :target - 配置文件运行的目标。 有关示例用法,请参阅 Config.config_target/0

链接到此函数

read_imports!(file, opts \\ [])

查看源代码 (自 1.9.0 起)
@spec read_imports!(
  Path.t(),
  keyword()
) :: {keyword(), [Path.t()]}

读取给定的配置文件并返回带有其导入的配置。

接受与 read!/2 相同的选项。 不过请注意,:imports 选项无法在 read_imports!/2 中禁用。