😊

好きなバージョンのNode.jsでターミナルを起動したい(fish shell + nvm)

2024/07/05に公開

記事を書いたきっかけ

最近pnpmを利用するようになって、pnpm devとターミナルを新しく立ち上げた時に実行するとNode.jsがv18以上じゃないと使えません!といったニュアンスのエラーに毎回遭遇します。

MacOSのNode.jsのデフォルトがv16で止まっているからですね。(更新できたりするのかな)

特定のNode.jsのバージョンでターミナルを起動したい!

普段nvmを利用しているので、当然nvm側でデフォルトのバージョンをv18以上にして、このエラーを回避したいと思い立ちました。
調べると、nvm aliasコマンドでできそうです。

しかし、私はfish shellを利用しているので、fish.nvmというプラグインを利用しています。
このプラグインでは nvm alias default 20.10.0 のようなaliasコマンドが使えません。(nvm, version 2.2.13)
そのため、デフォルトバージョンの指定をサブコマンドで実現することができませんでした。

nvm -h                                                                                                                                                    
Usage: nvm install <version>    Download and activate the specified Node version
       nvm install              Install the version specified in the nearest .nvmrc file
       nvm use <version>        Activate the specified Node version in the current shell
       nvm use                  Activate the version specified in the nearest .nvmrc file
       nvm list                 List installed Node versions
       nvm list-remote          List available Node versions to install
       nvm list-remote <regex>  List Node versions matching a given regex pattern
       nvm current              Print the currently-active Node version
       nvm uninstall <version>  Uninstall the specified Node version
Options:
       -s, --silent             Suppress standard output
       -v, --version            Print the version of nvm
       -h, --help               Print this help message
Variables:
       nvm_arch                 Override architecture, e.g. x64-musl
       nvm_mirror               Use a mirror for downloading Node binaries
       nvm_default_version      Set the default version for new shells
       nvm_default_packages     Install a list of packages every time a Node version is installed
Examples:
       nvm install latest       Install the latest version of Node
       nvm use 14.15.1          Use Node version 14.15.1
       nvm use system           Activate the system's Node version

軽く調べた結果、これに落ち着きました 🫠

config.fish
# デフォルトのNode.jsバージョンを設定
nvm use 20.10.0

config.fish に nvm use 20.10.0 と書く!以上!
bass コマンドとかでaliasとかがうまく使えるようになったら改善するかも。。

Discussion