Hirooooo’s Labo

開発メモ、ガジェット、日記、趣味など、思った事を思ったまんま書くブログ

npmの取得パッケージのバージョンをまとめて更新する方法(npm-check-updates)

f:id:hirooooo-lab:20170110142845j:plain

今回も前回に引き続きnpmに関しての記事です。

今回はpackage.jsonに記載されているパッケージのバージョンを簡単に更新する方法を紹介したいと思います。

前回のnpmコマンドの記事はこちら
www.hirooooo-lab.com

npmにはnpm updateというコマンドがあるのですが、このコマンドではpackage.jsonに書かれているバージョンに更新・インストールされるだけで、パッケージ自体のバージョンを更新することはできません。
パッケージのバージョンを更新するためには、package.json内のバージョンを最新のバージョンに書き換える必要があります。

これを1つ1つ最新バージョンの確認をして更新するのは大変なので、今回はnpm-check-updatesというパッケージを使用して更新したいと思います。

npm-check-updatesのインストール

npm-check-updatesもパッケージなのでnpmを使用してライブラリを追加します。
package.jsonにも追加するために --save-devオプションを付けてインストールしておきましょう。

$ npm install --save-dev npm-check-updates

これでnpm-check-updatesが使えるようになりました。

.node_moduleにパスを通す

グローバルインストールはしていないので、取得した実行モジュールにパスを通す必要があります。
以下のコマンドを実行

$ export PATH=$PATH:./node_modules/.bin

(毎回設定するのが面倒な場合は、.bashrcにEXPORTを追記して、.bash_profileで読み込んだりすればいいと思います。)
(または下記コマンドでグローバルインストールしましょう。)

$ npm install -g npm-check-updates

更新可能なパッケージの確認

バージョンが更新されていて、最新ではないパッケージの一覧を確認します。

$ npm outdated

outdatedコマンドでも確認はできるのですが、せっかくなのでnpm-check-updatesを使いましょう。

$ npm-check-updates

すると、こんな感じで更新可能なパッケージが表示されます。

$ npm-check-updates
[INFO]: You can also use ncu as an alias
Using /Users/hoge/Dev/angel/package.json
⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ :
 react-redux              ^4.4.5  →   ^5.0.2
 eslint-config-airbnb    ^13.0.0  →  ^14.0.0
 eslint-plugin-jsx-a11y   ^2.2.3  →   ^3.0.2

Run ncu with -u to upgrade package.json

ちなみに、npm-check-updates

$ ncu

のように省略も可能です。
丁寧に教えてくれてますね。

package.jsonの更新

package.jsonの更新可能なパッケージバージョンを書き換えるには-uオプションを使用します。
これまた丁寧に教えてくれていますね。

$ npm-check-updates -u
または
$ ncu -u

これでpackage.jsonのバージョンが最新に更新されました。

実際のパッケージの更新

npm-check-updatesを使ってpackage.jsonが更新されてますので、あとは普通に

$ npm update

を実行するだけでOKです。

これで簡単にまとめて更新ができました。

Nodeモジュールはかなり頻繁に更新が行われてますので、npm-check-updatesはとても便利なパッケージだと思います。

パッケージ更新が大変で困ってる人は、ぜひ試してみると幸せになれるかもしれません。