Skip to content

pnpm 11 made scriptShell settable in pnpm-workspace.yaml only => denies having sane system default instead of cmd #11474

@iki

Description

@iki

Last pnpm version that worked

10.x

pnpm version

11.0.4

Code to reproduce the issue

  1. set script-shell=C:\Program Files\git\bin\bash.exe in ~/.npmrc for sane portable package.json tasks
  2. use pnpm to run the tasks

Expected behavior

pnpm uses globally set script-shell (10.x used ~/.npmrc or <pnpm-config>/rc, 11.x could use <pnpm-config>/config.yaml)

Actual behavior

pnpm uses cmd on windows, which breaks package.json all repos that expect bash

Additional information

yes, projects can override it using pnpm config set --location project scriptShell bash, but on many-many checked out repos, users may not want having to run it before use (and have possibly unwanted changes in workdir) - global setting would provide a sane default

Node.js version

25.9.0

Operating System

Windows

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions