plover-pnpm-workspace

Diagnose and fix pnpm workspace filter, script, and store errors.

1|Updated May 24, 2026
One-click install
npx skills add https://github.com/tryplover/Plover --skill plover-pnpm-workspace-tryplover
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: plover-pnpm-workspace
Source: https://github.com/tryplover/Plover/tree/main/.claude/skills/plover-pnpm-workspace
Command: npx skills add https://github.com/tryplover/Plover --skill plover-pnpm-workspace-tryplover

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? pnpm commands in this monorepo fail with misleading errors like "No projects matched the filters", missing coverage output, unbuilt native binaries, or corepack network timeouts, and the root causes are non-obvious workspace and toolchain quirks. ## Core Features & Use Cases - Filter and Script Fixes: Explains why -F app fails (the package is named plover) and why colon-named scripts like test:coverage need an explicit run keyword under --filter. - Native Build and Store Issues: Covers pnpm 10's onlyBuiltDependencies gating for electron/esbuild postinstall scripts and ERR_PNPM_UNEXPECTED_STORE caused by a stray Homebrew pnpm shadowing the pinned version. - Network/Corepack Failures: Resolves ConnectTimeoutError on restricted networks by bypassing the corepack shim with a PATH override to the global pnpm. - Use Case: You run pnpm --filter ./app test:coverage and get "No projects matched the filters" — this Skill tells you to use pnpm --filter ./app run test:coverage instead. ## Quick Start Ask the AI to diagnose why your pnpm command failed in this repo and apply the matching fix from the quick reference table.

Frequently Asked Questions about plover-pnpm-workspace

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does pnpm --filter say "No projects matched the filters"?▼

pnpm -F matches by package name, not directory name. In this repo the app/ package is named plover, so -F app matches nothing. Use the path-based filter pnpm --filter ./app <script> instead.

How do I run a colon-named script like test:coverage with pnpm --filter?▼

Add the explicit run keyword: pnpm --filter ./app run test:coverage. pnpm treats script names containing colons as a special dispatch case that does not work through the plain --filter shortcut.

Why does vitest produce no coverage output when passing --coverage through pnpm?▼

With pnpm workspace filters, a trailing -- does not reliably forward flags; vitest receives --coverage as a positional argument. Define a dedicated test:coverage script that calls vitest run --coverage directly.

Why are electron or esbuild binaries not built after pnpm install?▼

pnpm 10+ blocks postinstall scripts unless packages are allowlisted in pnpm.onlyBuiltDependencies in the root package.json. Add entries like electron and esbuild there so their native binaries get built.

How do I fix pnpm ConnectTimeoutError on a corporate or VPN network?▼

The corepack pnpm shim ignores .npmrc and fetches the pinned version from registry.npmjs.org, which times out on restricted networks. Prepend the global pnpm directory (~/Library/pnpm) to PATH so the real binary runs instead.

What causes ERR_PNPM_UNEXPECTED_STORE when running pnpm test?▼

A stray older pnpm (for example Homebrew's) earlier on PATH uses a different store format than the one node_modules was linked against. Put the correct global pnpm first on PATH and verify with pnpm --version.