🏠Blog Posts

fnmがWindowsのgit bash上でcommand not foundとなる解決法

問題の発生

fnmをWindowsのGit Bash上で使おうとすると、fnmのパスは通るがnodeでcommand not foundとなってしまう。
bashでfnmを使うのに必要なコマンドを.bashrcに記載しても解決しない。

1eval "$(fnm env --use-on-cd)"

原因は何か

fnm envで出力されるfnm_multishellのパスが/c/...のようなLinux形式ではなく、C://...といったWindows形式なのが問題。
なのでcygpathでfnm_multishellをLinux形式に変換して挙げればOK。以下の内容を.bashrcに記載する。

1eval "$(fnm env --use-on-cd)" 2export PATH=$(cygpath $FNM_MULTISHELL_PATH):$PATH

余談

解決方法としてネット上には

1export PATH=`cygpath -u $PATH`

を掲載しているものもあるが、これをすると私の環境ではdockerコマンドが使えなくなってしまったりと、PATHに含まれる他のアプリケーションに影響が出てしまった。詳細な理由は分からないが、原因はcygpath -u $PATHでfnm以外の全てのパスを変換していることだと思われる。
そのため、今回記載した方法であればfnm_multishellのパスのみ変換しているので他のものへの影響がないことが利点である。

Copyright © 2023, Haruya Umemoto