npm/cli

[BUG] Parallelizing `npm version` in workspaces results in error

Open

#9,412 opened on 2026年5月27日

GitHub で見る
 (1 comment) (0 reactions) (0 assignees)JavaScript (3,025 forks)batch import
BugGood First IssueNeeds Triage

Repository metrics

Stars
 (7,529 stars)
PR merge metrics
 (平均マージ 3d 12h) (30d で 139 merged PRs)

説明

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

I run npm version via ultra-runner or xargs in parallel in >40 workspaces.

One or more calls fail because of "invalid" package.json - in one case (so far) package.json even had been cut to zero bytes.

AFAICT, executing npm version in a single workspace calls changeWorkspaces, which in turn reads every package.json inside the mono-repo via mapWorkspaces. Parallel npm version race, so later calls may find a package.json that has been started to convert (and may be temporarily empty).

Expected Behavior

npm version in a single workspace should not access other workspaces.

This is shown by --no-workspaces which works. But I always would need to remember to include it.

Maybe npm version should internally set --no-workspaces.

Steps To Reproduce

I have no explicit repro, but it's simple: have a workspace tree with ~40 or 50 workspaces. Use ultra-runner or xargs to execute npm version patch --no-git-tag-version

Environment

  • npm: 11.15 (starts with 8, afaict)
  • Node.js: 22/24
  • OS Name: Linux

コントリビューターガイド