カテゴリー
Node.js

Node.jsとかnpmとかごちゃごちゃなので整理してみた

タイトルの通りなので、整理してみました。

確認環境:

Windows10

node v12.18.4

npm 6.14.8

Node.jsとは

サーバーサイドのJavaScript

JavaScriptでWebアプリを作りたいと思ったら、事始めにNode.jsをインストールすることになるはず。

Node.jsをインストールすると、npmが使えるようになるはず。

Node.jsのインストール方法

いろいろある。

1 インストーラからインストール

手っ取り早い方法は、以下からインストーラをダウンロードしてインストールする。

Node.js 公式サイト

Node.js 公式サイト ダウンロード

インストールされていることを確認するためバージョンを表示する。

node --version

nodeでできることを確認するたには、nodeのヘルプを見るのがよいです。

node -h

2 Homebrewからインストール

macの場合、Homebrewを使ってインストールすることもできる。

Homebrewとは

macOS(またはLinux)用パッケージマネージャー

アップル(またはLinuxシステム)が提供していない必要なものをインストールとかアンインストールできる。

Homebrew 公式サイト

上記のサイトに記載されている方法で、まずはHomebrewをインストールして、

brew install node

でnode.jsをインストールする方法もあり。

3 nodebrewからインストール

macOS(またはLinux)の場合、nodebrewを使ってインストールすることもできる。

※ Homebrewと名前が似てますが、別物。

nodebrewとは

複数のバージョンのnodeを切り替えて使える、nodeの管理システム。

使い方はほぼ、以下のサイトに書いてあります。

nodebrew github

npm(Node Package Manager)とは

Node.jsのパッケージ管理システム。

例えば、jsのフレームワークexpressが使いたい場合に、npmでインストールしたり、いらなくなったパッケージをアンインストールしたりできる。

nodeをインストールしたら、npmコマンドが使えるようになります。

npmはグローバルとローカルを意識する

グローバルとローカルでパッケージがインストールされる場所やスコープが異なります。

ググってnpm関連の記事を読む時に、このことを頭のすみに置いといたほうが良いです。

特定のプロジェクトでしか使わないパッケージはローカルにインストールし、いつも使うパッケージはグローバルにインストールするのが良い。

ローカルにインストール

npm install [パッケージ名]

対象プロジェクトにだけパッケージがインストールされます。

対象プロジェクトの「node_modules」フォルダにパッケージがインストールされます。

グローバルにインストール

npm install -g [パッケージ名]

ローカルインストールと異なる点は「-g」オプションをつけること。

インストールしたパッケージはどこからでも使えます。

WindowsとかMacとか環境によって異なりますが、ホームディレクトリのあたりにパッケージはインストールされます。

npmのコマンド

npmのヘルプを表示

npm -h

npmのバージョンを表示

npm --version

インストールされたパッケージの一覧を表示

npm list
npm list -g

リストが長くなる場合は、

npm list --depth=0

のように「--depth」オプションで表示する階層を指定できます。

パッケージのアンインストール

npm uninstall [パッケージ名]
npm uninstall -g [パッケージ名]

package.jsonとは

そのプロジェクトのプロジェクト名とかバージョン情報とかパッケージ情報が書かれたもの

package-lock.jsonとは

プロジェクトのすべてのパッケージの依存関係(dependency)が書かれたもの

「npm install」で自動作成される。

package.json、package-lock.jsonの使われ方

プロジェクト(パッケージ)を公開するつもりがないなら、あまり気にする必要はない。

複数人で同じプロジェクトを分担して作業する時や、異なるマシンで作業する場合、package.json、package-lock.jsonファイルをもとに、まったく同じ依存関係(パッケージのバージョンとか)を実現できる。

package.json、package-lock.jsonファイルをプロジェクトのルートフォルダにコピーして

npm init

すると、package.json、package-lock.jsonファイルに基づいて、必要なパッケージをインストールしてくれる。

以下の記事がすごい参考になりました。

【初心者向け】NPMとpackage.jsonを概念的に理解する -Qiita