























@@ -14,6 +14,7 @@ import {
1414discoverBundledPluginManifests,
1515selectPluginEntries,
1616} from "./lib/plugin-gateway-gauntlet.mjs";
17+import { createPnpmRunnerSpawnSpec } from "./pnpm-runner.mjs";
17181819const DEFAULT_QA_SCENARIOS = [
1920"channel-chat-baseline",
@@ -231,8 +232,13 @@ function parsePositiveNumber(raw, label) {
231232return value;
232233}
233234234-function pnpmCommand() {
235-return process.platform === "win32" ? "pnpm.cmd" : "pnpm";
235+function pnpmCommand(args, { cwd, env }) {
236+return createPnpmRunnerSpawnSpec({
237+ cwd,
238+ env,
239+pnpmArgs: args,
240+stdio: "pipe",
241+});
236242}
237243238244function openclawCommand(repoRoot, args) {
@@ -361,6 +367,7 @@ function runMeasuredCommand(params) {
361367encoding: "utf8",
362368timeout: params.timeoutMs,
363369maxBuffer: 16 * 1024 * 1024,
370+ ...(mode === "none" ? (params.spawnOptions ?? {}) : {}),
364371});
365372const wallMs = performance.now() - started;
366373const status = result.status ?? (result.signal ? 1 : 0);
@@ -509,13 +516,16 @@ async function main() {
509516const rows = [];
510517if (!options.skipPrebuild && (selectedPlugins.length > 0 || !options.skipQa)) {
511518process.stderr.write("[plugin-gauntlet] prebuild\n");
519+const prebuildEnv = buildGauntletPrebuildEnv(env, { includePrivateQa: !options.skipQa });
520+const prebuildCommand = pnpmCommand(["build"], { cwd: repoRoot, env: prebuildEnv });
512521rows.push(
513522runMeasuredCommand({
514523cwd: repoRoot,
515-env: buildGauntletPrebuildEnv(env, { includePrivateQa: !options.skipQa }),
524+env: prebuildEnv,
516525logDir: path.join(options.outputDir, "logs", "prebuild"),
517-command: pnpmCommand(),
518-args: ["build"],
526+command: prebuildCommand.command,
527+args: prebuildCommand.args,
528+spawnOptions: prebuildCommand.options,
519529label: "prebuild",
520530phase: "prebuild",
521531timeoutMs: options.buildTimeoutMs,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。