link-workspace-packages — скилл для Claude Code: связывает пакеты
Скилл добавляет зависимости между пакетами монорепозитория через workspace-команды npm, yarn, pnpm или bun. Пригодится, когда импорт из соседнего пакета падает с ошибкой резолва.
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a claude-codeЧто делает link-workspace-packages
Скилл разбирается, какой менеджер пакетов у вас в проекте, и добавляет зависимость правильным для него способом. Менеджер определяется по полю packageManager в корневом package.json или по локфайлу: pnpm-lock.yaml, yarn.lock, bun.lock, package-lock.json.
Дальше он находит пакет-потребитель и пакет-поставщик, прописывает зависимость и проверяет, что симлинк появился в node_modules/ потребителя. Для pnpm и yarn используется протокол workspace:, npm обходится без него и линкует сам, bun поддерживает тот же workspace:, что и pnpm.
Скилл прямо запрещает обходить проблему через paths в tsconfig или ручную правку package.json — чинить надо линковку средствами менеджера. Ещё стоит помнить, что hoisting у менеджеров разный: npm и bun поднимают общие зависимости в корневой node_modules, pnpm не поднимает ничего, а yarn berry по умолчанию работает через Plug'n'Play без node_modules вообще. Если ошибка резолва осталась после добавления зависимости, это повод проверить, что корневой package.json помечен "private": true, иначе публикация может уйти не туда.
Какие задачи решает
- связать только что сгенерированный пакет с тем, который его импортирует
- добавить соседний пакет как зависимость, когда импорт уже написан
- починить
cannot find moduleдля пакета вида@org/* - разобраться с
TS2307иfailed to resolve importв монорепо - выбрать синтаксис линковки под конкретный менеджер пакетов
Примеры запросов агенту
- импортирую @org/ui в @org/app, добавь его как зависимость
- не резолвится @org/data-access, ошибка TS2307 — почини линковку
- создал новый пакет в packages/, свяжи его с приложением
Как установить link-workspace-packages
1Через Skills CLI (Vercel)
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a claude-code2Вручную: положить файлы
~/.claude/skills/link-workspace-packages/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/link-workspace-packages/
1Через Skills CLI (Vercel)
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a codex2Вручную: положить файлы
.agents/skills/link-workspace-packages/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a cursor2Вручную: положить файлы
.cursor/skills/link-workspace-packages/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install nrwl/nx-ai-agents-config link-workspace-packages2Вручную: положить файлы
.github/skills/link-workspace-packages/SKILL.md1Через Skills CLI (Vercel)
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a gemini-cli2Командой платформы
gemini skills install https://github.com/nrwl/nx-ai-agents-config --path skills/link-workspace-packagesВручную: положить файлы
.devin/skills/link-workspace-packages/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора6
Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Все скиллы по теме «Настройка агента: память, контекст, субагенты» →Вопросы о link-workspace-packages
Как установить link-workspace-packages в Claude?
Выполните npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a claude-code. Скилл появится по пути ~/.claude/skills/link-workspace-packages/SKILL.md.
Что делает link-workspace-packages?
Добавляет зависимости между пакетами монорепозитория через workspace-команды менеджера пакетов и проверяет, что симлинки создались в node_modules/ потребителя.
Чем отличается линковка в pnpm и npm?
pnpm требует явного протокола workspace: и не поднимает зависимости наверх, а npm линкует workspace-пакеты сам и пишет в package.json версию *.
Исходный текст
SKILL.md · MIT
---
name: link-workspace-packages
description: 'Link workspace packages in monorepos (npm, yarn, pnpm, bun). USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) user imports from a sibling package and needs to add it as a dependency, (3) you get resolution errors for workspace packages (@org/*) like "cannot find module", "failed to resolve import", "TS2307", or "cannot resolve". DO NOT patch around with tsconfig paths or manual package.json edits - use the package manager''s workspace commands to fix actual linking.'
---
# Link Workspace Packages
Add dependencies between packages in a monorepo. All package managers support workspaces but with different syntax.
## Detect Package Manager
Check whether there's a `packageManager` field in the root-level `package.json`.
Alternatively check lockfile in repo root:
- `pnpm-lock.yaml` → pnpm
- `yarn.lock` → yarn
- `bun.lock` / `bun.lockb` → bun
- `package-lock.json` → npm
## Workflow
1. Identify consumer package (the one importing)
2. Identify provider package(s) (being imported)
3. Add dependency using package manager's workspace syntax
4. Verify symlinks created in consumer's `node_modules/`
---
## pnpm
Uses `workspace:` protocol - symlinks only created when explicitly declared.
```bash
# From consumer directory
pnpm add @org/ui --workspace
# Or with --filter from anywhere
pnpm add @org/ui --filter @org/app --workspace
```
Result in `package.json`:
```json
{ "dependencies": { "@org/ui": "workspace:*" } }
```
---
## yarn (v2+/berry)
Also uses `workspace:` protocol.
```bash
yarn workspace @org/app add @org/ui
```
Result in `package.json`:
```json
{ "dependencies": { "@org/ui": "workspace:^" } }
```
---
## npm
No `workspace:` protocol. npm auto-symlinks workspace packages.
```bash
npm install @org/ui --workspace @org/app
```
Result in `package.json`:
```json
{ "dependencies": { "@org/ui": "*" } }
```
npm resolves to local workspace automatically during install.
---
## bun
Supports `workspace:` protocol (pnpm-compatible).
```bash
cd packages/app && bun add @org/ui
```
Result in `package.json`:
```json
{ "dependencies": { "@org/ui": "workspace:*" } }
```
---
## Examples
**Example 1: pnpm - link ui lib to app**
```bash
pnpm add @org/ui --filter @org/app --workspace
```
**Example 2: npm - link multiple packages**
```bash
npm install @org/data-access @org/ui --workspace @org/dashboard
```
**Example 3: Debug "Cannot find module"**
1. Check if dependency is declared in consumer's `package.json`
2. If not, add it using appropriate command above
3. Run install (`pnpm install`, `npm install`, etc.)
## Notes
- Symlinks appear in `<consumer>/node_modules/@org/<package>`
- **Hoisting differs by manager:**
- npm/bun: hoist shared deps to root `node_modules`
- pnpm: no hoisting (strict isolation, prevents phantom deps)
- yarn berry: uses Plug'n'Play by default (no `node_modules`)
- Root `package.json` should have `"private": true` to prevent accidental publish
© nrwl · MIT · nrwl/nx-ai-agents-config