sandbox-npm-install
npmパッケージをDockerサンドボックス環境にインストールするスキルです。virtiofsでワークスペースがマウントされたコンテナ内でnode_modulesのインストール・再インストール・更新が必要な場合に使用します。esbuild・lightningcss・rollupなどのネイティブバイナリはvirtiofs上でクラッシュするため、ローカルのext4ファイルシステムにパッケージをインストールしてシンボリックリンクで参照する方式を採用しています。
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.
SKILL.md 本文
Sandbox npm Install
このスキルを使う時
以下の場合にこのスキルを使用してください:
- 新しいサンドボックスセッションで npm パッケージを初めてインストールする必要がある
package.jsonまたはpackage-lock.jsonが変更されて再インストールが必要SIGILL、SIGSEGV、mmap、unaligned sysNoHugePageOSなどのエラーでネイティブバイナリがクラッシュしているnode_modulesディレクトリが見つからないか破損している
前提条件
- virtiofs でマウントされたワークスペースを持つ Docker サンドボックス環境
- コンテナで利用可能な Node.js と npm
- ターゲットワークスペースの
package.jsonファイル
背景
Docker サンドボックスのワークスペースは通常 virtiofs (ホストと Linux VM 間のファイル同期) でマウントされています。ネイティブな Go および Rust バイナリ (esbuild、lightningcss、rollup など) は、aarch64 上の virtiofs から実行されると mmap アライメント障害でクラッシュします。解決策は、コンテナのローカル ext4 ファイルシステムにインストールしてワークスペースにシンボリックリンクさせることです。
ステップバイステップインストール
ワークスペースルートから付属のインストールスクリプトを実行します:
bash scripts/install.sh
一般的なオプション
| オプション | 説明 |
|---|---|
--workspace <path> | package.json を含むディレクトリのパス (省略時は自動検出) |
--playwright | E2E テスト用に Playwright Chromium ブラウザもインストール |
スクリプトの実行内容
package.json、package-lock.json、.npmrc(存在する場合) をローカル ext4 ディレクトリにコピーする- ローカルファイルシステム上で
npm ci(またはロックファイルがない場合はnpm install) を実行する node_modulesをワークスペースにシンボリックリンクさせる- 既知のネイティブバイナリ (esbuild、rollup、lightningcss、vite) が存在する場合は検証する
- オプションで Playwright ブラウザとシステム依存関係をインストール (利用可能な場合は
sudoを使用)
検証に失敗した場合は、スクリプトを再度実行してください — クラッシュは初期セットアップ中に散発的に発生する可能性があります。
インストール後の検証
スクリプトが完了したら、ツールチェーンが機能することを確認します。例えば:
npm test # プロジェクトテストを実行
npm run build # プロジェクトをビルド
npm run dev # dev サーバーを起動
重要な注記
- ローカルインストールディレクトリ (例:
/home/agent/project-deps) は コンテナローカル であり、ホストに同期されません node_modulesシンボリックリンクはホスト上では壊れたリンクとして表示されます —node_modulesは通常 gitignore されているため、これは無害です- ホスト上で
npm ciまたはnpm installを実行すると、シンボリックリンクは自然に実ディレクトリに置き換わります package.jsonまたはpackage-lock.jsonの変更後は、インストールスクリプトを再度実行してください- マウントされたワークスペースで直接
npm ciまたはnpm installを実行しないでください — ネイティブバイナリがクラッシュします
トラブルシューティング
| 問題 | 解決策 |
|---|---|
dev サーバー実行時に SIGILL または SIGSEGV が発生 | インストールスクリプトを再度実行; ワークスペース内で直接 npm install を実行していないことを確認 |
インストール後に node_modules が見つからない | シンボリックリンクが存在することを確認: ls -la node_modules |
| インストール中に権限エラー | ローカル deps ディレクトリが現在のユーザーで書き込み可能であることを確認 |
| 検証が散発的に失敗 | スクリプトを再度実行してください — ネイティブバイナリのクラッシュは初回読み込み時に非決定的である可能性があります |
Vite との互換性
プロジェクトで Vite を使用している場合、server.fs.allow でシンボリックリンクされたパスを許可する必要があります。シンボリックリンク対象の親ディレクトリ (例: /home/agent/project-deps/) を Vite 設定に追加して、Vite がシンボリックリンク経由でファイルを提供できるようにしてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。