К основному содержанию
скилл CX Codex

link-workspace-packages — скилл для Claude Code: связывает пакеты

Скилл добавляет зависимости между пакетами монорепозитория через workspace-команды npm, yarn, pnpm или bun. Пригодится, когда импорт из соседнего пакета падает с ошибкой резолва.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add nrwl/nx-ai-agents-config --skill link-workspace-packages -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/link-workspace-packages/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/link-workspace-packages/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора6

Похожие

check-npm grafana Проверяет конфигурацию пакетного менеджера в JS/TS-репозитории: версии инструментов, lifecycle-скрипты, опасные протоколы зависимостей и минимальный возраст релиза. CX Codex +1 2 800установок monorepo-management Seth Hobson Скилл помогает настраивать и поддерживать монорепозитории с Turborepo, Nx и pnpm workspaces. Пригодится для сборки, общих зависимостей и публикации пакетов. CX Codex 14 548установок grepai-workspaces yoanbernabeu Скилл учит агента настраивать рабочие пространства GrepAI: несколько проектов, один поисковый индекс, поиск по всем сразу или по одному. CX Codex +1 682установок aube-package-manager reason-machines Скилл подсказывает, как работать с пакетным менеджером aube в Node.js-проектах. Пригодится для зависимостей, workspaces, CI и миграции с pnpm. CX Codex +1 392установок vega-multi-tv-migration AmazonAppDev Скилл переводит приложения Vega OS для Fire TV в монорепозиторий React Native. Он помогает перенести общий код на Android TV и Apple TV. CX Codex +1 10 400установок npm-package jwynia Скилл ведёт агента через создание npm-библиотеки на Bun: скаффолдинг, строгий TypeScript, тесты, сборка и публикация. CX Codex +1 331установок

Рядом в теме «Настройка агента: память, контекст, субагенты»

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →

Вопросы о 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

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой