diff --git a/crates/node_runtime/src/node_runtime.rs b/crates/node_runtime/src/node_runtime.rs index 426b5c4d3c..a00ce6cd23 100644 --- a/crates/node_runtime/src/node_runtime.rs +++ b/crates/node_runtime/src/node_runtime.rs @@ -226,18 +226,19 @@ impl NodeRuntime for RealNodeRuntime { let node_binary = installation_path.join(NODE_PATH); let npm_file = installation_path.join(NPM_PATH); - let mut env_path = node_binary + let mut env_path = vec![node_binary .parent() .expect("invalid node binary path") - .to_path_buf(); + .to_path_buf()]; if let Some(existing_path) = std::env::var_os("PATH") { - if !existing_path.is_empty() { - env_path.push(":"); - env_path.push(&existing_path); - } + let mut paths = std::env::split_paths(&existing_path).collect::>(); + env_path.append(&mut paths); } + let env_path = + std::env::join_paths(env_path).context("failed to create PATH env variable")?; + if smol::fs::metadata(&node_binary).await.is_err() { return Err(anyhow!("missing node binary file")); }