diff --git a/packages/evals/run.ts b/packages/evals/run.ts index a524ee4b9e..73926ae8c2 100644 --- a/packages/evals/run.ts +++ b/packages/evals/run.ts @@ -13,6 +13,7 @@ if (!wantsHelp && !wantsMan) { const build = spawnSync("pnpm", ["run", "build"], { stdio: "inherit", cwd: "../..", + shell: process.platform === "win32", }); if (build.status !== 0) process.exit(build.status ?? 1); } diff --git a/packages/evals/scripts/build-cli.ts b/packages/evals/scripts/build-cli.ts index 1650fd43e5..553ab44532 100644 --- a/packages/evals/scripts/build-cli.ts +++ b/packages/evals/scripts/build-cli.ts @@ -12,8 +12,18 @@ import { getRepoRootDir } from "../runtimePaths.js"; const repoRoot = getRepoRootDir(); +import esbuild from "esbuild"; + const run = (args: string[]) => { - const result = spawnSync("pnpm", args, { stdio: "inherit", cwd: repoRoot }); + const cmd = process.platform === "win32" ? "pnpm.cmd" : "pnpm"; + const result = spawnSync(cmd, args, { + stdio: "inherit", + cwd: repoRoot, + }); + if (result.error) { + console.error("Spawn error:", result.error); + process.exit(1); + } if (result.status !== 0) { process.exit(result.status ?? 1); } @@ -21,19 +31,18 @@ const run = (args: string[]) => { fs.mkdirSync(`${repoRoot}/packages/evals/dist/cli`, { recursive: true }); -run([ - "exec", - "esbuild", - "packages/evals/cli.ts", - "--bundle", - "--platform=node", - "--format=esm", - `--outfile=${repoRoot}/packages/evals/dist/cli/cli.js`, - "--sourcemap", - "--packages=external", - "--banner:js=#!/usr/bin/env node", - "--log-level=warning", -]); +esbuild.buildSync({ + entryPoints: [`${repoRoot}/packages/evals/cli.ts`], + bundle: true, + platform: "node", + format: "esm", + outfile: `${repoRoot}/packages/evals/dist/cli/cli.js`, + sourcemap: true, + packages: "external", + banner: { js: "#!/usr/bin/env node" }, + logLevel: "warning", + absWorkingDir: repoRoot, +}); /* ── merge config: always update tasks/benchmarks from source, but preserve user defaults ── */ const sourceConfig = JSON.parse( @@ -66,6 +75,7 @@ fs.chmodSync(`${repoRoot}/packages/evals/dist/cli/cli.js`, 0o755); const link = spawnSync("npm", ["link", "--force"], { stdio: "inherit", cwd: `${repoRoot}/packages/evals`, + shell: process.platform === "win32", }); if (link.status !== 0) { console.warn( diff --git a/packages/evals/scripts/build-esm.ts b/packages/evals/scripts/build-esm.ts index 4100f6b34e..a8a98a6530 100644 --- a/packages/evals/scripts/build-esm.ts +++ b/packages/evals/scripts/build-esm.ts @@ -13,7 +13,15 @@ import { getRepoRootDir } from "../runtimePaths.js"; const repoRoot = getRepoRootDir(); const run = (args: string[]) => { - const result = spawnSync("pnpm", args, { stdio: "inherit", cwd: repoRoot }); + const result = spawnSync("pnpm", args, { + stdio: "inherit", + cwd: repoRoot, + shell: process.platform === "win32", + }); + if (result.error) { + console.error("Spawn error:", result.error); + process.exit(1); + } if (result.status !== 0) { process.exit(result.status ?? 1); }