Created
February 27, 2026 15:10
-
-
Save book000/b44bcca8178afff81074ca4bbf0a1817 to your computer and use it in GitHub Desktop.
npm グローバルプレフィックス変更後の他マシン適用手順
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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