Windows native build fails with "spawnSync npm ENOENT" — build-coding-agent-bundle.mjs:181 missing shell: win32

Fermée Adaptée aux débutants
#137 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
75/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
node.js, shell, typescript
Domaine
build-system

Piste de recherche

Le problème se trouve dans scripts/build-coding-agent-bundle.mjs à la ligne 181. Tout d'abord, localiser le fichier et examiner l'appel execFileSync. Le comparer avec des correctifs similaires dans local-release.mjs:92 et profile-coding-agent-node.mjs:268. Appliquer le diff suggéré pour ajouter l'option shell pour Windows. Tester en exécutant pnpm run build sur un système Windows ou en simulant la condition. Vérifier que la compilation se termine sans l'erreur ENOENT.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug untriaged
What happened?

Windows 原生(非 WSL)从源码跑 pnpm run build,死在 scripts/build-coding-agent-bundle.mjs:181:

Error: spawnSync npm ENOENT

根因:那行 execFileSync("npm", …) 没带 shell。Windows 上 npm 是 npm.cmd / npm.ps1(没有 npm.exe),非 shell 的 spawn 走 CreateProcess 找不到 .exe,直接 ENOENT;Linux/macOS/WSL 不受影响。

另外,你们已经在 local-release.mjs:92、profile-coding-agent-node.mjs:268、以及 #113(Windows step wrapper)里处理过 Windows 的 .cmd / shell 适配,这个 build 入口只是漏了同一处 shell: process.platform === "win32"。一行补丁:

- execFileSync("npm", ["--prefix", appEntryDir, "run", "build"], { stdio: "inherit", cwd: repoRoot });
+ execFileSync("npm", ["--prefix", appEntryDir, "run", "build"], { stdio: "inherit", cwd: repoRoot, shell: process.platform === "win32" });


### Steps to reproduce

(Windows 11 26200 / Node 24.15.0 / pnpm 9.10.0 / 原生 PowerShell,非 WSL)
git clone https://github.com/stepfun-ai/Step-Code.git && cd Step-Code
pnpm install --ignore-scripts
pnpm run build
# -> Error: spawnSync npm ENOENT (scripts/build-coding-agent-bundle.mjs:181)


### Expected behavior

给 scripts/build-coding-agent-bundle.mjs:181 补上 shell: process.platform === "win32" 后,Windows 原生 pnpm run build 应能编过

### Version

0.1.0
Langage dominant
TypeScript
Étoiles
1k
Forks
68
Merge moyen
23 h 51 min
PR mergées (30 j)
65

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de stepfun-ai/Step-Code

Toutes les issues de stepfun-ai/Step-Code

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.