1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なぜ最初にnpm installするの?Git clone後に必要な理由を初心者向けに解説

1
Posted at

はじめに

今回は、プロジェクトを始めるにあたって、なぜ最初に npm install を実行するのかという理由について簡単にまとめます。

npm installとは?

npm install は、プロジェクトを動かすために必要なパッケージをインストールするコマンドです。

Next.jsのプロジェクトなら、Next.jsやReactをはじめ、開発で使用しているさまざまなライブラリが必要になります。

どのパッケージが必要なのかは、主に package.json に記載されています。

例えば、

json
{
  "dependencies": {
    "next": "...",
    "react": "...",
    "react-dom": "..."
  }
}

と書かれていれば、このプロジェクトではNext.jsやReactなどを使用していることが分かります。

なぜcloneしただけでは動かないの?

通常、GitHubには node_modules をアップロードしません。

node_modules にはインストールされた大量のパッケージが入っており、ファイル数や容量が非常に大きくなるためです。

その代わりに、

package.json
package-lock.json

などをGitで管理します。

つまりGitHubからcloneした直後は、

「必要なパッケージの情報はあるけれど、パッケージ本体がまだPCにない」

という状態です。

そこで、

npm install

を実行します。

すると必要なパッケージがダウンロードされ、node_modules が作成されます。

開発を始めるまでの流れ

GitHubからNext.jsプロジェクトを取得した場合は、例えば以下のような流れになります

GitHubからコードを取得
        ↓
npm install
        ↓
必要なパッケージを揃える
        ↓
node_modulesが作られる
        ↓
npm run dev
        ↓
開発環境が起動

package.jsonとpackage-lock.jsonの違い

ここも最初は少し分かりにくいポイントです。

package.json は、プロジェクトでどんなパッケージを使用するのかを定義するファイルです。

一方、package-lock.json は、実際にインストールするパッケージのバージョンや依存関係をより具体的に記録するファイルです。

チーム開発では、この package-lock.json もGitで管理することで、メンバー間で環境の差が生まれにくくなります。

npm installとnpm ciの違い

package-lock.json が存在するプロジェクトでは、

npm ci

というコマンドを使うこともあります。

npm ci は package-lock.json に従ってクリーンな状態からインストールするため、CI/CDや環境をきっちり再現したい場面でよく利用されます。

普段の開発では、

npm install

を使うことが多く、新しいパッケージを追加するときにも使用します。

まとめ

npm install を最初にする理由は、プロジェクトを動かすために必要なパッケージを自分のPCに用意するためです。

GitHubからcloneしただけでは通常 node_modules は存在しません。

そのため、

git clone
↓
npm install
↓
npm run dev

という流れで開発環境を準備します。

最初はなんとなく実行していたコマンドでも、「何をしているのか」が分かると、エラーが起きたときにも原因を追いやすくなります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?