Skip to content

Instantly share code, notes, and snippets.

@book000
Created February 27, 2026 15:10
Show Gist options
  • Select an option

  • Save book000/b44bcca8178afff81074ca4bbf0a1817 to your computer and use it in GitHub Desktop.

Select an option

Save book000/b44bcca8178afff81074ca4bbf0a1817 to your computer and use it in GitHub Desktop.
npm グローバルプレフィックス変更後の他マシン適用手順
#!/usr/bin/env bash
# npm グローバルプレフィックス変更後の他マシン適用スクリプト
# chezmoi apply 後に実行する
set -euo pipefail
echo "=== npm グローバルプレフィックスのセットアップ ==="
# 1. npm プレフィックスを変更
echo "[1/4] npm プレフィックスを ~/.npm-global に変更..."
mkdir -p "$HOME/.npm-global"
npm config set prefix "$HOME/.npm-global"
echo " 完了"
# 2. 旧プレフィックスのパッケージを確認して再インストール
echo "[2/4] 旧プレフィックス (~/.local/lib/node_modules) のパッケージを確認..."
OLD_MODULES="$HOME/.local/lib/node_modules"
if [ -d "$OLD_MODULES" ]; then
PACKAGES=$(find "$OLD_MODULES" -maxdepth 2 -name "package.json" \
! -path "*/node_modules/*/node_modules/*" \
| xargs -I{} node -e "const p=require('{}'); if(p.name) console.log(p.name)" 2>/dev/null || true)
if [ -n "$PACKAGES" ]; then
echo " 以下のパッケージを再インストールします:"
echo "$PACKAGES" | sed 's/^/ /'
echo "$PACKAGES" | xargs npm install -g
echo " 完了"
else
echo " 再インストール対象のパッケージはありません"
fi
else
echo " 旧プレフィックスは存在しません。スキップ"
fi
# 3. シェルを再読み込み
echo "[3/4] シェル設定を再読み込み..."
if [ -f "$HOME/.bashrc" ]; then
# shellcheck disable=SC1091
source "$HOME/.bashrc" 2>/dev/null || true
fi
echo " 完了(新しいターミナルを開くと確実に反映されます)"
# 4. 動作確認
echo "[4/4] 動作確認..."
echo " which gemini : $(which gemini 2>/dev/null || echo '未インストール')"
echo " which codex : $(which codex 2>/dev/null || echo '未インストール')"
echo ""
echo "=== 完了 ==="
echo " 新しいターミナルを開いて 'claude doctor' で警告が消えていることを確認してください。"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment