2022/12/24

nvs autoとcdするスクリプトは相性が悪そうだ

node.js の切替に nvs を使っている。

https://github.com/jasongin/nvs

nvs auto on しておくと、.node-version に使用したい node.js のバージョンが書いてあれば cd したときに自動で切り替わる。

 

私は Ubuntu を使っているのだが、デフォルトの node.js は v12.22.9 になっていた。
よく使うのは v16系なのだが、グローバルでインストールするようなコマンドも意識的に使っていないのでデフォルトのままにしている。
何か実装したり動かしたりするときに nvs use で指定しているのだが、たまに忘れてデフォルトのまま使ってしまい、なんか動きがおかしいなぁ、というところで気付いたりする。

そういうのを避けるために nvs auto on と .node-version は便利そうなのだ。


ただ、私の環境だと .bashrc で nvs auto on しているとなんか変だったのだ。
勝手に知らないディレクトリが作成されたり、エラーで mkdir の使い方が間違っていると出てきたり。

そして先ほど、.bashrc がこうなっているのに気付いた。

  • NVS_HOME などの設定
  • nvs auto on
  • GOPATH を設定するスクリプトの実行

よろしくなかったのは最後の GOPATH を設定するスクリプト。
ここ最近 GOPATH が必要なプロジェクトの作業ばかりしていたので GOPATH を設定するスクリプトを作って source コマンドで読み込ませていた。

#!/bin/bash

export GOPATH=$(cd $(dirname $BASH_SOURCE); pwd)
export PATH=$GOPATH/bin:$PATH
mkdir -p $GOPATH/src $GOPATH/pkg $GOPATH/bin

GOPATH をあちこち置いていたので、このスクリプトファイルを置いて読み込めばそのディレクトリを GOPATH になるようにしていた。

スクリプト中で cd しているところがあるのだが、これによって nvs auto on が作動してしまうようなのだ。
cd だから作動するのは当たり前なのだが、 .bashrc でこのスクリプトを実行することと nvs auto on の組み合わせによってターミナルを新しく開いたとき、特に vscode で開いたときの挙動がよくなかったようだ。

 

まあ、これは .bashrc の中でこういうスクリプトを走らせる方が良くないな。
スクリプトの場所=GOPATH の場所なので、直接そう書けば良いだけなのだ。あるいは nvs auto on の前に呼び出すようにするかだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。