Files
pnpm/.changeset/shim-printf-path-normalization.md
f9c86ffa64 fix(cmd-shim): use printf instead of echo for POSIX path normalization (#14878)
## Summary

Fixes #14867.

POSIX cmd shims used `echo "$link" | sed ...` to rewrite backslashes. On some shells/systems `echo` can mangle or expand escape sequences, which corrupts Windows-style paths (e.g. `C:\node_modules\.bin\tsc`).

This switches the shim header to `printf '%s\n' "$link"` so the path is passed through literally before `sed` normalizes `\` → `/`. `cygpath` / `wslpath` PATH lookup is unchanged.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Zoltan Kochan <z@kochan.io>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Bennett Payoyo <Yahiro025@users.noreply.github.com>
2026-09-16 01:52:59 +02:00

394 B

@pnpm/bins.cmd-shim, @pnpm/bins.linker, pnpm, pacquet
@pnpm/bins.cmd-shim @pnpm/bins.linker pnpm pacquet
patch patch patch patch

POSIX bin shims now convert a Windows-form path such as C:\node_modules\.bin\tsc correctly. The shim mangled the backslashes in such a path and could not reach the package it runs. Installing again replaces the shims already in node_modules #14867.