К основному содержанию
скилл GitHub Copilot официальный · GitHub

sandbox-npm-install — скилл для GitHub Copilot: npm в Docker

Скилл ставит npm-зависимости на локальной ext4-файловой системе Docker и возвращает node_modules в workspace через symlink. Нужен при virtiofs.

Установить в GitHub Copilot · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add github/awesome-copilot --skill sandbox-npm-install
Открыть на GitHub

Что делает sandbox-npm-install

Скилл решает проблему с нативными бинарниками, которые могут падать при запуске из workspace, смонтированного через virtiofs. Он подходит для первой установки зависимостей, повторной установки после изменений в package.json или package-lock.json, а также после повреждения node_modules.

Из корня workspace запускается bash scripts/install.sh. Скрипт копирует файлы npm в локальный каталог ext4, выполняет npm ci или npm install, затем создаёт symlink на node_modules. При наличии проверяются esbuild, rollup, lightningcss и vite; флаг --playwright добавляет установку браузера Chromium и системных зависимостей.

Нужны Docker sandbox с virtiofs, Node.js, npm и package.json. Для Vite может потребоваться добавить родительский каталог symlink в server.fs.allow. Ставьте этот скилл, если native binaries падают в контейнере; для обычного workspace без virtiofs он не нужен.

Какие задачи решает

  • установить npm-зависимости в Docker sandbox
  • обойти падения esbuild и rollup на virtiofs
  • восстановить node_modules через symlink
  • подготовить Chromium для Playwright E2E-тестов

Примеры запросов агенту

  • Установи зависимости проекта через `bash scripts/install.sh`, не запускай npm напрямую в mounted workspace.
  • Повтори установку после изменения `package-lock.json` и проверь сборку через `npm run build`.
  • Запусти установку с `--playwright`, чтобы подготовить Chromium для E2E-тестов.

Как установить sandbox-npm-install

1Через Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill sandbox-npm-install

2GitHub CLI

gh skill install github/awesome-copilot sandbox-npm-install

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

.github/skills/sandbox-npm-install/SKILL.md

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

Весь набор →
git-commit официальный github Скилл разбирает изменения Git, выбирает связанные файлы и создаёт коммит в формате Conventional Commits. Пригодится, когда нужно закоммитить одну или несколько логических частей изменений. GitHub Copilot 47 165установок excalidraw-diagram-generator официальный github Скилл превращает описание на обычном языке в диаграмму Excalidraw. Подойдёт, когда нужно показать процесс, связи между объектами или устройство системы. GitHub Copilot 31 639установок multi-stage-dockerfile официальный github Скилл помогает создавать многоэтапные Dockerfile для разных языков и фреймворков. Пригодится, когда важны размер и состав runtime-образа. GitHub Copilot 29 688установок documentation-writer официальный github Скилл для создания технической документации по фреймворку Diátaxis: туториалы, гайды, справки и объяснения. Предлагает структуру перед написанием. GitHub Copilot 27 757установок prd официальный github Собирает из идеи структурированный PRD с пользовательскими историями, техническими требованиями и рисками. Подходит для планирования новых функций, в том числе с AI. GitHub Copilot 24 035установок refactor официальный github Скилл помогает менять структуру кода без изменения внешнего поведения. Подойдёт для постепенной уборки сложных функций, дублирования и кодовых запахов. GitHub Copilot 22 321установок java-springboot официальный github Задаёт практики разработки Spring Boot-приложений: от структуры проекта до тестов и безопасности. Пригодится, когда Copilot пишет или проверяет Java-код. GitHub Copilot 21 272установок create-readme официальный github Скилл изучает проект и создаёт структурированный README.md. Подойдёт, когда документацию нужно собрать по коду и файлам проекта. GitHub Copilot 19 081установок

Похожие

review-agent-setup Tom Farley Скилл настраивает подтверждение действий ИИ-агента человеком перед ревью, слиянием PR и правкой CI. Каждое одобрение или отказ фиксируется криптографической подписью Ed25519. Claude Code CX Codex Cursor 5 200установок google-cloud-filestore-log-troubleshooting официальный google Находит причины сбоев монтирования Google Cloud Filestore, ошибок доступа и сетевых тайм-аутов. Пригодится, если NFS перестал подключаться к VM, поду GKE или другой рабочей среде из списка. Claude Code Gemini CLI CX Codex 1 600установок git-guardrails-claude-code Matt Pocock Скилл ставит хук Claude Code, который останавливает опасные Git-команды до их запуска. Нужен, если агент не должен делать push или удалять изменения. Claude Code 499 069установок ponytail-review DietrichGebert Скилл проверяет изменения глубже обычного diff: читает связанный код, ищет ошибки, риски, проблемы нагрузки и недостающие тесты. Пригодится для ревью PR и коммитов. Claude Code CX Codex Cursor +1 56 300установок ponytail-audit DietrichGebert Проверяет репозиторий и ранжирует ошибки, риски и лишний код. Подойдёт, если нужен разовый разбор без автоматических правок. Claude Code CX Codex Cursor +1 44 800установок security-audit cloudflare Проверяет кодовую базу на уязвимости и ищет нарушения границ доверия. Пригодится перед релизом или для точечного разбора опасных участков кода. Claude Code CX Codex Cursor +1 52 200установок security-and-hardening addyosmani Помогает проектировать защиту и проверять код на уязвимости при работе с вводом, авторизацией, сессиями и внешними сервисами. Подойдёт перед релизом и при создании функций, которые обрабатывают недоверенные данные. Claude Code CX Codex Cursor +1 69 400установок supabase официальный supabase Скилл помогает настраивать базу данных, аутентификацию и RLS в Supabase без скрытых дыр в безопасности. CX Codex GP ChatGPT 8установок

Вопросы о sandbox-npm-install

Как установить sandbox-npm-install в GitHub Copilot?

Выполните npx skills add github/awesome-copilot --skill sandbox-npm-install или gh skill install github/awesome-copilot sandbox-npm-install. Файл скилла появится по пути .github/skills/sandbox-npm-install/SKILL.md.

Что делает sandbox-npm-install?

Скилл устанавливает npm-пакеты в локальном ext4-каталоге контейнера и связывает созданный node_modules с workspace. Это помогает избежать сбоев native binaries на virtiofs.

Что нужно для работы sandbox-npm-install?

Нужны Docker sandbox с virtiofs, Node.js, npm и package.json. Для установки браузера Playwright используется флаг --playwright.

Исходный текст

SKILL.md · MIT
---
name: sandbox-npm-install
description: 'Install npm packages in a Docker sandbox environment. Use this skill whenever you need to install, reinstall, or update node_modules inside a container where the workspace is mounted via virtiofs. Native binaries (esbuild, lightningcss, rollup) crash on virtiofs, so packages must be installed on the local ext4 filesystem and symlinked back.'
---

# Sandbox npm Install

## When to Use This Skill

Use this skill whenever:
- You need to install npm packages for the first time in a new sandbox session
- `package.json` or `package-lock.json` has changed and you need to reinstall
- You encounter native binary crashes with errors like `SIGILL`, `SIGSEGV`, `mmap`, or `unaligned sysNoHugePageOS`
- The `node_modules` directory is missing or corrupted

## Prerequisites

- A Docker sandbox environment with a virtiofs-mounted workspace
- Node.js and npm available in the container
- A `package.json` file in the target workspace

## Background

Docker sandbox workspaces are typically mounted via **virtiofs** (file sync between the host and Linux VM). Native Go and Rust binaries (esbuild, lightningcss, rollup, etc.) crash with mmap alignment failures when executed from virtiofs on aarch64. The fix is to install on the container's local ext4 filesystem and symlink back into the workspace.

## Step-by-Step Installation

Run the bundled install script from the workspace root:

```bash
bash scripts/install.sh
```

### Common Options

| Option | Description |
|---|---|
| `--workspace <path>` | Path to directory containing `package.json` (auto-detected if omitted) |
| `--playwright` | Also install Playwright Chromium browser for E2E testing |

### What the Script Does

1. Copies `package.json`, `package-lock.json`, and `.npmrc` (if present) to a local ext4 directory
2. Runs `npm ci` (or `npm install` if no lockfile) on the local filesystem
3. Symlinks `node_modules` back into the workspace
4. Verifies known native binaries (esbuild, rollup, lightningcss, vite) if present
5. Optionally installs Playwright browsers and system dependencies (uses `sudo` when available)

If verification fails, run the script again — crashes can be intermittent during initial setup.

## Post-Install Verification

After the script completes, verify your toolchain works. For example:

```bash
npm test             # Run project tests
npm run build        # Build the project
npm run dev          # Start dev server
```

## Important Notes

- The local install directory (e.g., `/home/agent/project-deps`) is **container-local** and is NOT synced back to the host
- The `node_modules` symlink appears as a broken link on the host — this is harmless since `node_modules` is typically gitignored
- Running `npm ci` or `npm install` on the host naturally replaces the symlink with a real directory
- After any `package.json` or `package-lock.json` change, re-run the install script
- Do NOT run `npm ci` or `npm install` directly in the mounted workspace — native binaries will crash

## Troubleshooting

| Problem | Solution |
|---|---|
| `SIGILL` or `SIGSEGV` when running dev server | Re-run the install script; ensure you're not running `npm install` directly in the workspace |
| `node_modules` not found after install | Check that the symlink exists: `ls -la node_modules` |
| Permission errors during install | Ensure the local deps directory is writable by the current user |
| Verification fails intermittently | Run the script again — native binary crashes can be non-deterministic on first load |

## Vite Compatibility

If your project uses Vite, you may need to allow the symlinked path in `server.fs.allow`. Add the symlink target's parent directory (e.g., `/home/agent/project-deps/`) to your Vite config so that Vite can serve files through the symlink.

© github · MIT · github/awesome-copilot

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

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

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