Skip to content

🔧 Node.jsの版をNodefileとnodenvで管理 - #3

Merged
u-ichi merged 1 commit into
mainfrom
u-ichi/manage-node-versions
Oct 6, 2026
Merged

u-ichi merged 1 commit into
mainfrom
u-ichi/manage-node-versions

Conversation

@u-ichi

@u-ichi u-ichi commented Oct 6, 2026

Copy link
Copy Markdown
Owner

目的

~/agent/projects/dot-request-dashboard は Node >=24.15.0 <25(.node-version は 24.19.0)を要求するが、手元には v26 しかない。グローバルに入れる Node.js の版を dotfiles で管理し、.node-version を置くプロジェクトでだけ切り替わるようにする。

変更内容

  • Nodefile を新設。1 行 1 版、# 行はコメント。今回は 24.19.0(dot-request-dashboard 用)
  • lib/node.sh に ensure_node_versions を追加。Nodefile の各版を nodenv install --skip-existing で導入する。nodenv 未導入ならスキップし、nodenv global は変えない
  • install.sh で source し、all フロー(Terraform の直後)と新しい MODE node から呼ぶ。未知 MODE のエラー文の一覧にも node を追加
  • fish(.config/fish/config.fish)、zsh(.config/zsh/zshenv / zprofile)、bash(.config/bash/bash_profile)の既存の PATH 設定で ~/.nodenv/shims を先頭に置く
  • docs/architecture.md(構成図、MODE 表、PATH 管理の節)と .claude/skills/pkg-add/SKILL.md(種別表、Nodefile 小節)に追記

確認結果

  • ./lint.sh 通過(ShellCheck / fish / tmux / Spotlight / TOML / JSON / plist)
  • session 用一時領域に NODENV_ROOT を向けて ensure_node_versions を 2 回実行し、1 回目で 24.19.0 を導入、2 回目は skip されることを確認
  • 同じ一時 NODENV_ROOT の shims を PATH 先頭に置いた状態で node -v を確認
ディレクトリ .node-version nodenv version-name node -v
~/agent/projects/dot-request-dashboard 24.19.0 24.19.0 v24.19.0
~ なし system v26.7.0(/opt/homebrew/bin/node)
dotfiles repo なし system v26.7.0(/opt/homebrew/bin/node)
~/agent/projects/clinial-co-jp 22 エラー nodenv: version '22' is not installed

注意

~/agent/projects/clinial-co-jp/.node-version が 22 のため、shims を入れるとそこで node が未導入エラーになる。nodenv の版解決は versions/<name> ディレクトリの完全一致で、22 のような部分指定は解決しない。対応は PR とは別に判断する(候補: .node-version を完全な版番号にして Nodefile に追加する、など)。

merge 後の適用(live 環境の変更、ユーザー確認後に実行)

git -C ~/agent/projects/dotfiles pull
~/agent/projects/dotfiles/install.sh node
~/agent/projects/dotfiles/install.sh fish   # fish の PATH 設定を再コピー

zsh / bash の PATH 設定(~/.zshenv / ~/.zprofile / ~/.bash_profile)は ./install.sh(all)の設定ファイルコピーで反映される。

🤖 Generated with Claude Code

dot-request-dashboard が Node >=24.15.0 <25 (.node-version は 24.19.0) を要求するが、
手元には v26 しか無いため、プロジェクト別の Node.js の版を dotfiles で管理する。

- Nodefile を新設し、nodenv で導入する版を 1 行 1 版で列挙する (今回は 24.19.0)
- lib/node.sh に ensure_node_versions を置き、各版を nodenv install --skip-existing で導入する。
  nodenv 未導入ならスキップし、nodenv global は変えない
- install.sh の all フローと新しい MODE node から呼ぶ
- fish / zsh / bash の PATH 設定で ~/.nodenv/shims を先頭に置く。
  .node-version の無い場所では nodenv の system 解決で従来の /opt/homebrew/bin/node が使われる
- docs/architecture.md と pkg-add skill に Nodefile を追記

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@u-ichi
u-ichi merged commit 0abcba3 into main Oct 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant