Node.jsとnodenvとyarn

Node.jsとnodenvとyarn

今までフロント部分について曖昧な事が多かったため、こちらにまとめさせていただきます。

Node.jsとは?
Node.jsは、JavaScriptがサーバー側で動くようにするものだが、今までJavaScriptのサーバー側バージョンの言語?と思っていたが、実は違った
Node.jsは、JavaScriptがサーバー側で動くようにするためのプラットフォームである。
そもそもRubyJavaScriptなどのプログラミング言語が使えるようになるのは、プログラミング言語を理解できるプラットフォームがあるからである
Rubyの場合は、サーバー側にRuby言語が理解できるプラットフォームがあるからサーバー側でRubyが動く
JavaScriptの場合は、ブラウザ側にJavaScript言語が理解できるプラットフォームがあるからブラウザ側でugoku
Node.jsは、通常はブラウザ側にしかJavaScriptのプラットフォームが無いが、サーバー側でもJavaScriptを理解できるようにするためのプラットフォームである。

nodenvとは?
nodenvは、Node.jsのバージョン管理ツールである

yarnとは?
JavaScriptのライブラリを管理するパッケージマネージャ

[node_modules]フォルダとは?
yarnでインストールしたライブラリがインストールされる場所(Rubyだとvendorフォルダになる)

[package.json]ファイルとは?
yarnでインストールしたいライブラリ名とバージョンを記載したファイル(RubyだとGemfileになる)

[yarn.lock]ファイルとは?
yarnでインストールしたライブラリと、それの依存関係にあるライブラリと、それぞれのバージョンを記録しておくファイル(RubyだとGemfile.lockファイルになる)

Rubyに例えると以下のようなイメージ

Ruby Node.js
バージョン管理ツール rbenv nodenv
パッケージマネージャ bundler yarn
インストールしたいライブラリを記載するファイル Gemfile package.json
インストールしたライブラリが保存される場所 vendor node_modules
インストールしたライブラリとそれの依存関係にあるライブラリと、それらのバージョンを保存しておくファイル Gemfile.lock yarn.lock
Gemfile.lockやyarn.lockに記載されているライブラリをインストール+Gemfile.lock(yarn.lock)とGemfile(package.json)を比較してGemfile.lock(yarn.lock)に記載が無く、Gemfile(package.json)に記載があるライブラリがある場合は、そのライブラリに依存しているライブラリも含めてインストール bundle install yarn install
Gemfile.lock(yarn.lock)に記載されているバージョンを参照せずにGemfile(package.json)に記載されている内容の範囲内で最新のライブラリをインストールし直す(ライブラリのバージョンが変わり今まで動いていたアプリケーションが動かなくなる可能性があるので、基本的にはやらない方が良い) bundle update yarn upgrade
Gemfileやpackage.jsonに記載せずに、指定したライブラリをインストールする gem install (ライブラリ名) yarn add (ライブラリ名)

以下のファイルの位置でもRubyとの対応関係がイメージがつくと思います。

higmonta@higuchimiyukiyuunoMacBook-Pro 2563_higmonta_runteq_curriculum_advanced % which yarn
/Users/higmonta/.nodenv/shims/yarn
higmonta@higuchimiyukiyuunoMacBook-Pro 2563_higmonta_runteq_curriculum_advanced % which bundler
/Users/higmonta/.rbenv/shims/bundler

参考記事

swiperをyarnで導入して、画像をスライダー形式にする! - Qiita