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のパスのみ変換しているので他のものへの影響がないことが利点である。