package.jsonに記述したnpmパッケージの内容を書き換えてくれるncu – Node
npmの状態を取得する
通常npmの状態を取得するには以下のようなコマンドで調べられる。
1 2 3 4 5 |
// 現在インストールされているパッケージ一覧 $ sudo npm list --depth=0 // アップデート可能な古いパッケージ一覧 $ sudo npm outdated |
しかし$ sudo npm updateしてもpackage.jsonは書き換わらない。忘れていて再び$ npm installすると元に戻ってしまう。package.jsonは手作業で書き換えるしかない。
package.jsonを更新できるようにncuを導入する
package.jsonを書き換えてくれるnpmパッケージを導入する。
1 |
$ sudo npm install -g npm-check-updates |
ncuの基本的な使い方
1 2 3 4 5 6 7 8 |
// 変更前と変更後のリストを表示(--dry-runみたいなもの) $ sudo ncu // 実際にpackage.jsonの書き換え $ sudo ncu -u // 依存関係にあるもののマイナーアップデートも含めてpackage.jsonの書き換え $ ncu -a |
実際に$ sudo ncuと打ってみた結果はこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Using /var/www/html/***/package.json [..................] | : gulp ^3.9.0 → ^4.0.2 gulp-clean-css ^3.10.0 → ^4.2.0 gulp-imagemin ^5.0.3 → ^6.0.0 The following dependencies are satisfied by their declared version range, but the installed versions are behind. You can install the latest versions without modifying your package file by using npm update. If you want to update the dependencies in your package file anyway, run ncu -a. npm ^6.4.1 → ^6.9.0 gulp-autoprefixer ^6.0.0 → ^6.1.0 gulp-plumber ^1.2.0 → ^1.2.1 gulp-uglify ^3.0.1 → ^3.0.2 Run ncu with -u to upgrade package.json |
$ sudo ncu -uしてみると
1 2 3 4 5 6 7 8 9 10 11 12 |
Upgrading /var/www/html/***/package.json [====================] 11/11 100% npm ^6.4.1 → ^6.9.0 gulp ^3.9.0 → ^4.0.2 gulp-autoprefixer ^6.0.0 → ^6.1.0 gulp-clean-css ^3.10.0 → ^4.2.0 gulp-imagemin ^5.0.3 → ^6.0.0 gulp-plumber ^1.2.0 → ^1.2.1 gulp-uglify ^3.0.1 → ^3.0.2 Run npm install to install new versions. |
ncuはpackage.jsonを書き換えるところまでなので、このあと指示に従って
1 2 |
// 更新したpackage.jsonで再度インストール $ sudo npm install |
もう一度$ sudo ncuすると
1 2 3 4 |
Checking /var/www/html/***/package.json [====================] 11/11 100% All dependencies match the latest package versions :) |
こんな表示がでてきたら完成!
ncu自身のアップデート
$ sudo ncuをした際にこんな表示が出る。そしたらその通りに$ npm i -g npm-check-updatesと打てばアップデートできる。
1 2 |
Update available 2.15.0 → 3.1.10 Run npm i -g npm-check-updates to update |
コメント
コメントはありません。