Damit man ein weiteres File einlesen kann, muss man mit viper.New() eine neue Viper-Instanz erstellen. Dann kann man das zweite File auf diese Instanz einlesen und dann auf die Haupt-Instanz mergen. Beachte aber, dass die Maps sich auch gegenseitig überschreiben können. Stelle deshalb technisch fest, dass das nicht passiert.

	v := viper.New()

	v.SetConfigType("env")
	v.SetConfigFile(".env")
	v.AddConfigPath(".")
	err = v.ReadInConfig()
	if err != nil {
		log.Fatalf("failed to read viper .env config: %s", err.Error())
	}

	err = viper.MergeConfigMap(v.AllSettings())
	if err != nil {
		log.Fatalf("failed to merge viper .env config: %s", err.Error())
	}

// Check your values
fmt.Println(fmt.Sprintf("%v", viper.AllKeys()))
fmt.Println(fmt.Sprintf("%v", viper.AllSettings()))

Example

Add the config-files to your project