0
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についてよくわからなかったのでまとめてみた

Last updated at Posted at 2025-10-05

はじめに

npmインストールをちゃんと理解せずに使っていたので、改めてまとめようと思います。

npm installとは

npm installpackage.jsonに記載されているパッケージをnode_modulesディレクトリにインストールするコマンドである。

  • npm install {パッケージ名}
    • package.jsonにない、新規のパッケージをインストールし、package.jsonに自動で記載される
  • npm install
    • package.jsonにある、パッケージをインストールする
    • 同等のコマンドで npm ci もある
      • package.json の依存関係の解決を行わず、常に package-lock.json を見て依存パッケージをダウンロードし node_modules の洗い替えを行う
      • package.json を完全に無視するというわけではなく、 package-lock.json と依存バージョン指定が食い違っているとエラーにする

npm installにはグローバルインストールとローカルインストールの2種類がある。

  • グローバルインストール
    • コマンド
      • npm install -g
    • インストール場所
      • npmがインストールされている場所のnode_modules
    • 使い時
      • 自PCからいつでも使いたいパッケージとか
  • ローカルインストール
    • コマンド
      • npm install
    • インストール場所
      • カレントディレクトリのnode_modules
    • 使い時
      • 基本的にはこっち
      • git cloneしてきたときとか、デプロイするときとか
      • node_modulesディレクトリは.gitignoreに記載し、リポジトリにはプッシュしないので、開発者はローカル端末でgit cloneした時に都度実行する必要がある
    • 補足
      • ーDオプション
        • 新規パッケージをインストールする際、package.jsonのdependencesには記載されず、devDependenciesのみに記載されるようにする
        • —productionオプションを使うことで、package.jsonのdependencesに記載されているパッケージのみをインストールできるので、-Dオプションを使ってインストールしたパッケージを本番環境でインストールする必要がなくなるので、効率的にパッケージをインストールでき、軽量になる

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

  • pckage.json
    • プロジェクトが依存するパッケージとそのバージョン範囲が定義されている
  • package-lock.json
    • 実際のインストールされたパッケージとそのサブ依存パッケージの厳密なバージョンとインストール場所が記載されている
    • →これにより、どの開発者も同じパッケージバージョンをインストールできるようになり、ビルドの再現性を保証

食い違う原因

  • 手動でpackage.jsonを更新した後にpackage-lock.jsonを更新していない場合。
  • npm installを実行せずにpackage-lock.jsonを変更した場合。
  • npm ciではなくnpm installを複数回実行した場合。

発生する問題

  • 開発環境・デプロイ環境の不一致: 異なる環境で異なるバージョンのパッケージがインストールされ、バグを引き起こす可能性がある。
  • ビルドの失敗: 必要なパッケージが欠落していたり、互換性のないバージョンがインストールされたりすると、ビルドが失敗する。
  • 予期しない動作: 依存パッケージのバージョンが異なることで、アプリケーションの動作が不安定になることがある。

参考

0
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
0
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?