パソコンの事がまだ良くわかってない事による不安が先行しているのでしょうか?
今回はその辺の理解が進んで先に進めるよう解説していきます。
バージョン管理ツールを入れる前に既存のNode.jsをアンインストールする必要があるという記述を見た
そうですね。
Macのターミナルソフトでコマンドを打ち込んだ時の動作を解説します。
コマンドの1単語目は動作させる実行ファイルを指します。
普段我々が何の疑いもなく普通に使っているcdやpwd、ls等のコマンドも全て実行ファイルが用意されています。
Node.jsをインストールするとnode,npm,npx等のコマンドが自動的に使えるようになっています
複数インストールすると「どのNode.js」を使おうとしているのか?がわからなくなりますよね。
ターミナル等では環境変数PATHにディレクトリの一覧を文字列にしたものが格納されていて、
左側に記載されているディレクトリから順番に「実行ファイルないかな?」と探していき
ターゲットの実行ファイルを見つけたらその実行ファイルを作動させます。
つまり、複数のNode.jsをインストールした時、どちらを環境変数の左側に持ってくるか問題が出てくるわけですね。
Node.jsのバージョン管理ツールの導入に成功した後は
普通に入れたNode.jsは使う意味が無くなります。
衝突して邪魔になるだけなのでさっさと捨てた方が良いでしょう。
nやfnmのようなバージョン管理ツール
プロジェクト毎?特定ディレクトリ内だけ?
Node.jsのバージョンを切り替えて動作させるなんて事が可能なのでしょうか?
nやfnmがどうコマンドラインツールとして関わってくるのかというと、
まずインストールするとnやfnm等のコマンド(実行ファイル)が使えるようになります。
これにfnm install 18等と指定して、ツール自体にNode.jsのバージョンをインストールさせて蓄えます。
ここまでは大抵のバージョン管理ツールとしては共通の動きになるでしょう。
そこからの方針は様々です。
- 環境変数PATHには共通のシンボリックリンクを参照させ、そのリンク先を蓄えたNode.jsのバージョンに切り替える
- Node.jsバージョン管理ツールが持つダミーの
node,npm,npxコマンドを中継させ、カレントディレクトリやデフォルトバージョンによって本当の実行先を切り替える
例えばfnmが具体的にどうやって実現しているかは確認していませんが、
特定ディレクトリ内だけ特定バージョンを使うような機能を実現するならば、
後者でなきゃ実現が難しいだろうなと思います。
Node.jsをアンインストールした場合、そのNode.js前提で動いているgulpなどの動作がおかしくなることは無いでしょうか?
Node.jsはバージョンが上がる度に動作がまともになっていくので
基本的におかしくなるということはありませんが、
既存のNode.jsを消してしまうとグローバルインストールしているものは使えなくなります。
npm list -g --depth=0でグローバルインストールしているライブラリを確認しておきましょう。
npm list -g --depth=0 | pbcopyとpbcopyコマンドをパイプしてやればクリップボードにコピー出来ますし、
npm list -g --depth=0 > versions.txtとファイルを指定してやればテキストファイルを作って出力結果を保存できます。
参考記事: npmでグローバルにインストールしたモジュールを確認する | diwao日記
2022/12/30 22:26