Node.js と npm 再入門(その2:パッケージの更新)

2018/03/29 03:16:16
この記事は最終更新日から3年以上が経過しています。

前回、「Node.js と npm 再入門」の続きです。今回はパッケージの更新についてです。

パッケージの最新化

npm でインストールした各パッケージですが、インストールした後にバグフィックスや機能追加などが行われて、パッケージが更新されている可能性があります。 そこで、インストールされているパッケージを最新化する必要が出てきます。

現在インストールされているパッケージの一覧

現在インストールされているパッケージの一覧を表示するには、npm list コマンドを使用します。 全て表示すると見づらい場合は、--depth オプションで表示する階層を指定できます。

ローカルパッケージの場合

# 全ての階層を表示する場合
npm list
# 一番上の階層だけ表示する場合
npm list --depth=0

グローバルパッケージの場合

# 全ての階層を表示する場合
npm list -g
# 一番上の階層だけ表示する場合
npm list -g --depth=0

最新バージョンがあるかどうか

インストールしたパッケージに新しいバージョンが存在するには、npm outdated コマンドを使用します。

ローカルパッケージの場合

npm outdated

グローバルパッケージの場合

npm outdated -g

パッケージが表示された場合は、新しいバージョンが存在するので、更新しましょう。

npm-outdated.png

パッケージを更新する

個別に1つずつ更新することもできますが、数が多くなると面倒だと思われるので、まとめて更新してしまいましょう。 まとめて更新するには npm update コマンドを使用します。 npm update コマンドを実行すると、package.json と package-lock.json ファイルは自動で更新されます。

ローカルパッケージの場合

npm update

グローバルパッケージの場合

npm update -g

npm の自体の更新

パッケージを管理してくれる npm ですが、npm 自体にもバージョンがあり、 npm が自体が古くなっているとパッケージのインストールや更新などができなくなったりします。 そこで、npm 自体を最新化する必要が出てきます。

npm のバージョンを確認する

npm の現在のバージョンを確認するには、npm コマンドを使用します。

npm --version
5.5.1

npm のバージョンが最新かどうか

実は、初回更新前に npm outdated -g コマンドを使用しても、npm パッケージの最新バージョンはわかりません。 npm view コマンドで確認しましょう。 ちなみに2回目更新時以降は npm outdated コマンドで最新バージョンの確認ができるようになります(理由は後述)。

npm view npm version
5.8.0

npm を更新する

npm 自体の更新は、npm install コマンドを使用するとされていますが、これには少し説明が必要です。 なぜ更新するのに npm update コマンドではなく、npm install コマンドなのか。なぜ -g オプションがついているのか。

npm install -g npm

npm 自体の更新を npm が行えるということはどういうことかといえば、npm 自体もパッケージであるということです。 しかしながら、Node.js をインストールした直後には、グローバルやローカルといった場所に npm パッケージはありません。 ではどこにあるかといえば npm 自体は Node.js がインストールされた場所にあります(グローバルでもローカルでもありません)。

このコマンドは厳密にいえば、最初から入っている npm パッケージ自体を更新するコマンドではなく、グローバルに npm パッケージをインストールするコマンドなのです。 なので、このコマンドを実行すると、最初から入っていた npm パッケージと、グローバルにインストールした npm パッケージの2つ入っていることになります。 グローバルのパッケージ一覧を表示した際に npm パッケージが増えていることが確認できるでしょう。

この状態で npm コマンドを実行すると、グローバルにインストールした方の npm パッケージの方が優先的に動くため、最新化されたように見えるということです。

# 初回更新時
# 厳密にいえばこれは更新ではないが更新したように見える
npm install -g npm

そのため、実は2回目以降は、通常の npm update -g npm コマンドでも npm パッケージを更新できます。 さらに言えば、全てのパッケージを更新する npm update -g コマンドを実行すると、 npm パッケージ自身も更新されることになります。

# 2回目以降更新時は npm update コマンドでも更新できる
npm update -g npm

# 普通のグローバルパッケージを更新しているのと同じなので、npm パッケージもまとめて更新される
npm update -g

参考サイト

関連記事

最近の Web 界隈では、UX を高めるために、UI を JavaScript でガリガリ実装するというのが普通になってます。フロントエンドエンジニアなんていう職種が生まれるほど、この界隈は活発です。そこでフロントエンド開発でほぼ必須となるであろう Node.js と npm について少しまとめてみます。今更感がすごいですが。。Node.js とは?Web ...
前回、「Node.js と npm 再入門(その2:パッケージの更新)」の続きです。今回は npm-scripts についてです。npm-scripts とは?npm で 使用している package.json にスクリプトを定義しておくと、npm コマンドからそのスクリプトを実行できるというものです。npm では各種様々な便利なパッケージを導入できますが、 ...
前回、「Node.js と npm 再入門(その3:npm-scripts)」の続きです。今回は npm にたくさんあるコマンドのうち、便利そうなコマンドを紹介します。npm ci コマンドnpm install コマンドではパッケージの依存関係などを確認しパッケージがインストールされていましたが、テストプラットフォーム、継続的な統合(CI)、デプロイメント ...
最近のアプリケーションは開発効率を上げるために大量のライブラリを組み合わせて作成することが多くなっています。そういった状況下では、たった1つのライブラリがバージョンアップすることで、そのライブラリに依存している他のライブラリが正常に動作しなくなり、やがてアプリケーション全体が正常に動作しなくなるというような状況に陥ります。あるライブラリが別のライブラリに依存 ...

記事検索

アーカイブ

2021

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

RSSフィード