diff --git a/crates/turborepo-lib/src/task_graph/visitor/command.rs b/crates/turborepo-lib/src/task_graph/visitor/command.rs index 0b3cb4d74dd25..f451251a2cafb 100644 --- a/crates/turborepo-lib/src/task_graph/visitor/command.rs +++ b/crates/turborepo-lib/src/task_graph/visitor/command.rs @@ -256,8 +256,16 @@ impl<'a, T: PackageInfoProvider> CommandProvider for MicroFrontendProxyProvider< let mut args = vec!["proxy", mfe_path.as_str(), "--names"]; args.extend(local_apps); + // On Windows, a package manager will rework the binary to be a .cmd extension + // since that's what Windows needs + let bin_name = if cfg!(windows) { + "microfrontends.cmd" + } else { + "microfrontends" + }; + // TODO: leverage package manager to find the local proxy - let program = package_dir.join_components(&["node_modules", ".bin", "microfrontends"]); + let program = package_dir.join_components(&["node_modules", ".bin", bin_name]); let mut cmd = Command::new(program.as_std_path()); cmd.current_dir(package_dir).args(args).open_stdin(); cmd