Skip to content

パッケージバイナリ

Voltaは、Node.jsツール自体の管理に加えて、グローバルにインストールされたnpmパッケージの管理もサポートしています。このドキュメントでは、Voltaでパッケージを管理する方法について説明します。

グローバルパッケージのインストール

Voltaでは、通常のnpmコマンドを使用してグローバルパッケージをインストールできます:

bash
# グローバルパッケージをインストール
npm install -g @vue/cli
yarn global add create-react-app

Voltaは、これらのパッケージを現在アクティブなNodeおよびパッケージマネージャーのバージョンと関連付けます。

パッケージの分離

Voltaの重要な特徴の一つは、パッケージの分離です。異なるNodeバージョンでインストールされたパッケージは分離されて管理されます:

bash
# Node 16でeslintをインストール
volta install node@16
npm install -g eslint

# Node 18に切り替え
volta install node@18
npm install -g eslint  # これは別のインストールです

# Node 16に戻る
volta install node@16
eslint --version  # Node 16用のeslintが利用可能

パッケージの固定

特定のパッケージバージョンをプロジェクトに固定することもできます:

bash
# プロジェクトディレクトリで
volta pin node@16
npm install -g @angular/cli@14

# package.jsonに記録される

これにより、そのプロジェクトで作業する際は常に指定されたバージョンのツールが使用されます。

パッケージの一覧表示

インストールされているグローバルパッケージを確認するには:

bash
# 現在のツールチェーンでインストールされたパッケージを表示
npm list -g --depth=0

# Voltaで管理されているすべてのツールを表示
volta list all

パッケージの更新

グローバルパッケージを更新するには:

bash
# 特定のパッケージを更新
npm update -g eslint

# すべてのグローバルパッケージを更新
npm update -g

# または、特定のバージョンに更新
npm install -g eslint@8.0.0

パッケージのアンインストール

グローバルパッケージをアンインストールするには:

bash
# npmを使用
npm uninstall -g package-name

# yarnを使用
yarn global remove package-name

複数バージョンの管理

同じパッケージの複数バージョンを異なるNodeバージョンで管理できます:

bash
# Node 14でwebpack 4をインストール
volta install node@14
npm install -g webpack@4

# Node 16でwebpack 5をインストール
volta install node@16
npm install -g webpack@5

# プロジェクトに応じて適切なバージョンが使用される

実践的な例

開発環境の設定

bash
# メインの開発ツールをインストール
volta install node@18 npm@9

# よく使用するグローバルツールをインストール
npm install -g \
  @vue/cli \
  create-react-app \
  @angular/cli \
  typescript \
  eslint \
  prettier \
  nodemon

プロジェクト固有の設定

bash
# プロジェクトディレクトリで
volta pin node@16 npm@8

# プロジェクト固有のツールをインストール
npm install -g @nestjs/cli@9.0.0

チーム開発での統一

json
// package.json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  },
  "scripts": {
    "setup": "npm install && npm run install-tools",
    "install-tools": "npm install -g eslint@8.0.0 prettier@2.5.0"
  }
}

ベストプラクティス

1. バージョンの明示

グローバルパッケージをインストールする際は、特定のバージョンを指定することを推奨します:

bash
# 良い例
npm install -g eslint@8.0.0

# 避けるべき例
npm install -g eslint

2. プロジェクト設定の文書化

チームで作業する場合、必要なグローバルツールを文書化します:

markdown
## 開発環境セットアップ

1. Voltaをインストール
2. プロジェクトディレクトリでNodeとnpmのバージョンを固定:
   ```bash
   volta pin node@16 npm@8
  1. 必要なグローバルツールをインストール:
    bash
    npm install -g eslint@8.0.0 prettier@2.5.0

### 3. CI/CDでの考慮事項

CI/CD環境では、必要なグローバルパッケージを明示的にインストールします:

```yaml
# .github/workflows/test.yml
- name: Setup Node.js
  uses: actions/setup-node@v3
  with:
    node-version: '16'

- name: Install Volta
  run: curl https://get.volta.sh | bash

- name: Install global tools
  run: |
    npm install -g eslint@8.0.0
    npm install -g prettier@2.5.0

トラブルシューティング

パッケージが見つからない

bash
# パッケージのインストール場所を確認
npm list -g package-name

# Voltaの状態を確認
volta list

# PATHを確認
echo $PATH

権限エラー

bash
# Voltaホームディレクトリの権限を確認
ls -la ~/.volta

# 必要に応じて権限を修正
sudo chown -R $USER:$USER ~/.volta

古いパッケージの削除

bash
# 未使用のパッケージを削除
npm install -g npkill
npkill

# または手動で削除
rm -rf ~/.volta/tools/user/packages/package-name