pnpm · mindrally — скилл для Claude Code: что делает и как установить
Скилл задаёт правила работы с pnpm, монорепозиториями и изоляцией зависимостей в проектах для Claude Code.
npx skills add Mindrally/skills --skill pnpm -a claude-codeЧто делает pnpm
Инструкции скилла обучают агента практикам работы с пакетным менеджером pnpm. В правила заложен отказ от npm и yarn, фиксация версий в pnpm-lock.yaml, управление хранилищем на основе контентной адресации и связывание внутренних пакетов через протокол workspace:.
Ассистент получает шаблоны для файла pnpm-workspace.yaml, параметры фильтрации команд через --filter и запуск параллельных задач ключом -r. Описаны параметры для .npmrc: выборочный подъём пакетов через public-hoist-pattern и управление peer-зависимостями.
Для Docker скилл предлагает разделять шаги через pnpm fetch и офлайн-установку, а режим shamefully-hoist помечает как нежелательный. Без настроенного файла конфигурации рабочего пространства команды фильтрации и внутренние зависимости работать не будут.
Какие задачи решает
- сконфигурировать монорепозиторий через
pnpm-workspace.yaml - связать локальные пакеты протоколом
workspace: - запускать скрипты сборки и тестов параллельно во всех модулях
- переопределить уязвимые транзитивные зависимости в
package.json
Примеры запросов агенту
- Настрой структуру монорепозитория с каталогами приложений и общих библиотек в
pnpm-workspace.yaml. - Установи утилиту
lodashисключительно в проект@org/my-appчерез флаг фильтра. - Запусти параллельное тестирование во всех зависимых пакетах с потоковым выводом логов.
Как установить pnpm
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pnpm -a claude-code2Вручную: положить файлы
~/.claude/skills/pnpm/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pnpm/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pnpm -a codex2Вручную: положить файлы
.agents/skills/pnpm/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pnpm -a cursor2Вручную: положить файлы
.cursor/skills/pnpm/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills pnpm2Вручную: положить файлы
.github/skills/pnpm/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pnpm -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path pnpmВручную: положить файлы
.devin/skills/pnpm/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pnpm -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о pnpm
Как установить pnpm в Claude Code?
Выполните в терминале команду npx skills add Mindrally/skills --skill pnpm -a claude-code. Либо добавьте файл скилла вручную по пути ~/.claude/skills/pnpm/SKILL.md.
Что делает этот скилл?
Он задаёт ИИ-агенту контекст по командам pnpm, изоляции зависимостей, ускорению сборки контейнеров и фильтрации задач в монорепозиториях.
Как скилл рекомендует подключать внутренние зависимости?
Через протокол рабочих пространств, например workspace:* или workspace:^. При публикации пакетов pnpm автоматически заменит такие указатели на точные версии.
Исходный текст
SKILL.md · Apache-2.0
---
name: pnpm
description: Best practices for pnpm package manager, workspace management, and monorepo configuration
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# pnpm Development
You are an expert in pnpm, the fast, disk space efficient package manager for JavaScript and TypeScript projects.
## Core Principles
- Always use pnpm (not npm or yarn) for package management
- Leverage pnpm's strict dependency resolution for better security
- Use the content-addressable store for disk space efficiency
- Maintain consistent lockfile (`pnpm-lock.yaml`)
## Installation and Setup
- Install pnpm globally: `npm install -g pnpm`
- Or use corepack: `corepack enable && corepack prepare pnpm@latest --activate`
- Specify pnpm version in `package.json`:
```json
{
"packageManager": "[email protected]"
}
```
## Workspace Configuration
Create `pnpm-workspace.yaml` for monorepo setup:
```yaml
packages:
- 'apps/*'
- 'packages/*'
- 'tooling/*'
```
- Use glob patterns to define workspace package locations
- All matched directories with `package.json` become workspace packages
## Dependency Management
- Install dependencies: `pnpm install`
- Add dependencies to specific workspace:
```bash
pnpm add lodash --filter @org/my-app
pnpm add -D typescript --filter @org/my-lib
```
- Use workspace protocol for internal dependencies:
```json
{
"dependencies": {
"@org/shared-utils": "workspace:*",
"@org/ui": "workspace:^"
}
}
```
- Protocol options:
- `workspace:*` - Any version, replaced with actual version on publish
- `workspace:^` - Compatible versions
- `workspace:~` - Patch versions only
## Filtering Commands
Run commands in specific packages:
```bash
pnpm --filter @org/my-app dev
pnpm --filter "./apps/*" build
pnpm --filter "...@org/my-lib" test # Include dependents
pnpm --filter "@org/my-lib..." build # Include dependencies
```
- Filter patterns:
- `--filter <package-name>` - Specific package
- `--filter "./path/*"` - By path
- `--filter "...<pkg>"` - Package and its dependents
- `--filter "<pkg>..."` - Package and its dependencies
## Scripts and Task Running
- Run scripts across workspaces:
```bash
pnpm -r run build # Run in all packages
pnpm -r --parallel run dev # Run in parallel
pnpm -r --stream run test # Stream output
```
- Define root-level scripts for common operations:
```json
{
"scripts": {
"build": "pnpm -r run build",
"dev": "pnpm --filter @org/web dev",
"lint": "pnpm -r run lint",
"test": "pnpm -r run test"
}
}
```
## Dependency Hoisting
Configure hoisting in `.npmrc`:
```ini
# Strict mode - no hoisting
hoist=false
# Selective hoisting
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
# Shamefully hoist everything (not recommended)
shamefully-hoist=true
```
- Prefer strict mode for better dependency isolation
- Use public hoisting for tools that need flat node_modules
## Peer Dependencies
Configure peer dependency handling in `.npmrc`:
```ini
auto-install-peers=true
strict-peer-dependencies=false
```
- Resolve peer dependency warnings appropriately
- Document required peer dependencies clearly
## Overrides and Resolutions
Override dependencies in root `package.json`:
```json
{
"pnpm": {
"overrides": {
"lodash": "^4.17.21",
"[email protected]": "npm:bar@^2.0.0"
}
}
}
```
- Use overrides to fix security vulnerabilities
- Pin problematic transitive dependencies
## Publishing Workspaces
- Configure publishable packages with proper fields
- Publish with `pnpm publish`
- Workspace protocol references are replaced with actual versions
## Performance Optimization
- Use `pnpm fetch` in Docker for better caching:
```dockerfile
COPY pnpm-lock.yaml ./
RUN pnpm fetch
COPY . ./
RUN pnpm install --offline
```
- Configure store location for CI caching
- Use `--frozen-lockfile` in CI environments
## Best Practices
- Always commit `pnpm-lock.yaml`
- Use `.npmrc` for consistent team configuration
- Prefer `workspace:*` for internal dependencies
- Keep root `package.json` minimal
- Use `pnpm dedupe` to optimize lockfile
- Audit regularly with `pnpm audit`
- Use `pnpm why <package>` to debug dependency issues
- Integrate with Turborepo or Nx for advanced task running
- Set `engine-strict=true` to enforce Node.js version requirements
© Mindrally · Apache-2.0 · Mindrally/skills
Похожие скиллы
Все скиллы по теме «DevOps и инфраструктура» →Сначала — pnpm от других авторов.