14

是否可以使用 Viper 加载/合并多个配置文件?假设我有一个包含我的程序配置的通用配置文件,以及包含每个客户端配置的客户端特定配置文件,其中一个将根据程序的输入进行加载。

谢谢。

4

1 回答 1

33

viperReadInConfigand MergeInConfig,可以多次调用。这是一个(未经测试的)示例:

viper.SetConfigName("default")
viper.AddConfigPath(path)
viper.ReadInConfig()

if context != "" {
    viper.SetConfigName(context)
    viper.AddConfigPath(path)
    viper.MergeInConfig()
}

viper.SetConfigName("config")
viper.AddConfigPath(".")
viper.MergeInConfig()

它按以下顺序读取这些文件:

  • $path/default.[yaml|toml|json]
  • $path/$context.[yaml|toml|json]
  • ./config.[yaml|toml|json]
于 2017-11-08T16:56:37.500 回答