質問するログイン新規登録

Q&A

解決済

1回答

791閲覧

Node.jsのアンインストールでトラブル発生しますか?

smmmo

総合スコア2

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2022/12/30 01:28

編集2022/12/30 01:35

0

0

GulpやWebpackなど、Node.jsを前提にした様々なアプリ?ソフトウェア?を使っているのですが、最近になってnやfnmのようなバージョン管理ツールでプロジェクトごとにNode.jsのバージョンを切り替えて動かす方法があると知りました
ただ、気になるのはバージョン管理ツールを入れる前に既存のNode.jsをアンインストールする必要があるという記述を見たことです
ここで質問ですがNode.jsをアンインストールした場合、そのNode.js前提で動いているgulpなどの動作がおかしくなることは無いでしょうか?
あとで同じバージョンのNode.jsをインストールすれば問題ないのでしょうか
また、バージョン管理ツールでおすすめのものがあれば教えてもらえると嬉しいです、環境はMacです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1

0

ベストアンサー

パソコンの事がまだ良くわかってない事による不安が先行しているのでしょうか?
今回はその辺の理解が進んで先に進めるよう解説していきます。

バージョン管理ツールを入れる前に既存のNode.jsをアンインストールする必要があるという記述を見た

そうですね。

Macのターミナルソフトでコマンドを打ち込んだ時の動作を解説します。

コマンドの1単語目は動作させる実行ファイルを指します。
普段我々が何の疑いもなく普通に使っているcdpwdls等のコマンドも全て実行ファイルが用意されています。

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 | pbcopypbcopyコマンドをパイプしてやればクリップボードにコピー出来ますし、
npm list -g --depth=0 > versions.txtとファイルを指定してやればテキストファイルを作って出力結果を保存できます。

参考記事: npmでグローバルにインストールしたモジュールを確認する | diwao日記

投稿2022/12/30 06:26

miyabi-sun

総合スコア21596

smmmo

2022/12/30 22:26

丁寧なご説明ありがとうございました 全く知識不足でしたがなんとなく理解が進んだ気がします またお世話になるかもしれませんが自分でも勉強を続けます、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問