From 794af778e4915ffb6a4fe9bae8fba04bc880503d Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 1 Apr 2025 17:18:13 +0800 Subject: [PATCH] fix(cli): merge config based on the first one (#13117) * fix(cli): merge config based on the first one * Add change file --- .changes/merge-config-based-on-first.md | 6 ++++++ crates/tauri-cli/src/helpers/config.rs | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .changes/merge-config-based-on-first.md diff --git a/.changes/merge-config-based-on-first.md b/.changes/merge-config-based-on-first.md new file mode 100644 index 000000000..27d0a66a8 --- /dev/null +++ b/.changes/merge-config-based-on-first.md @@ -0,0 +1,6 @@ +--- +tauri-cli: patch:bug +"@tauri-apps/cli": patch:bug +--- + +Fix setting merge config value to null with `--config` arg no longer works diff --git a/crates/tauri-cli/src/helpers/config.rs b/crates/tauri-cli/src/helpers/config.rs index 63fff3220..0b520e890 100644 --- a/crates/tauri-cli/src/helpers/config.rs +++ b/crates/tauri-cli/src/helpers/config.rs @@ -164,15 +164,16 @@ fn get_internal( } if !merge_configs.is_empty() { - let mut merge_config = serde_json::Value::Object(Default::default()); - for conf in merge_configs { + // We have check merge config is not empty above + let mut merge_config = merge_configs[0].clone(); + for conf in merge_configs.iter().skip(1) { merge(&mut merge_config, conf); } let merge_config_str = serde_json::to_string(&merge_config).unwrap(); set_var("TAURI_CONFIG", merge_config_str); merge(&mut config, &merge_config); - extensions.insert(MERGE_CONFIG_EXTENSION_NAME.into(), merge_config.clone()); + extensions.insert(MERGE_CONFIG_EXTENSION_NAME.into(), merge_config); } if config_path.extension() == Some(OsStr::new("json")) @@ -253,8 +254,9 @@ pub fn merge_with(merge_configs: &[&serde_json::Value]) -> crate::Result