node.js,nvm(NodeVersionManager),npm(NodePackageManager)...
そもそもnode.jsとは?
- 一言で言うとJavaScriptをサーバーサイドで実行できるようにするための環境
- サーバーサイド、クライアントサイドどちらもJavaScriptで書ける
- ファイル操作、ネットワーク通信、データベースアクセスなど、サーバーサイドのタスクをJavaScriptで記述できる
- 非同期処理(Asynchronous Programming)が得意
Q:サーバーサイドで実行できて何がいいの?
・安全
機密情報(APIキー、ユーザーのパスワードなど)や重要なロジックをサーバーに隠すことで、クライアント側に露出せず、安全性が高まる。
・軽い
サーバーが重い計算やデータ処理を代行することで、クライアント(ブラウザやアプリ)の負荷を減らし、動作を軽くできる
・便利
サーバーサイドでは、バックグラウンドで複雑なロジックや連携を実行できる。これにより、クライアント側では実現できない高度な機能を提供できる
nvmとは?
Node.jsの複数のバージョンを簡単にインストールしたり切り替えたりできる便利なツール
NVMを使う理由:
- プロジェクトごとに異なるNode.jsのバージョンを使いたい
- 例えば、プロジェクトAではNode.js 14を使い、プロジェクトBではNode.js 18を使う場合。
- 新しいバージョンを試したい
- Node.jsの最新バージョンを試してみたいが、現在のプロジェクトに影響を与えたくない場合。
- 古いプロジェクトを保守する
- 以前のNode.jsのバージョンで動くプロジェクトを維持する必要がある場合。
npmとは?
Node.jsのパッケージ管理ツール
NPMを使う理由:
-
パッケージの簡単なインストール
- 外部のライブラリ(パッケージ)をコマンド一つでインストールできます
npm install パッケージ名
「パッケージ」というのはライブラリやフレームワークのこと
つまりVueやReact, webpack, jQueryなどのこと - 外部のライブラリ(パッケージ)をコマンド一つでインストールできます
-
依存関係の自動アップデート
- パッケージがさらに別のパッケージ(依存関係)に依存している場合、それも自動的にインストールしてくれる
-
プロジェクト環境の再現性
-
package.json
とpackage-lock.json
というファイルで、使用したいプロジェクトが必要とするパッケージとそのバージョンを正確に記録しているため、他の開発者やサーバー環境で、まったく同じ状態のパッケージセットを再現可能
-
npm以外パッケージ管理ツール:
Yarn: npmと似た機能を持ち、高速な依存関係管理が特徴。
pnpm: ディスクスペースの節約を重視した軽量なパッケージ管理ツール。
Composer: PHPのパッケージ管理ツール(Node.js以外の言語向け)。