背景
material-uiを使おうと思ったら、
ジェネレータで作ったベースが古すぎて使えなかった際に、
一気にnpmをアップデートする方法があったのでメモします。
結構人気なnpmのようなので、今更感があるかもしれませんが!
環境
node.js v8.12
npm v6.3.0
準備する
古いバージョンのnpmを入れておく
とりあえず何でもいいのでいれます。
$ npm install sass-loader@6.0.6 style-loader@0.19.0 webpack@3.6.0
これを1発でバージョンアップします。
package.json
~~省略~~
"dependencies": {
"sass-loader": "^6.0.6",
"style-loader": "^0.19.0",
"webpack": "^3.6.0"
}
全アップデートできるライブラリを入れる
$ npm install -D npm-check-updates
特に問題ないなら、
-gをつけて、グローバルインストールしても良いと思います。
今回は検証なのでローカルインストールにしときます。
npmの説明はこちらです。
npm-check-updates公式
実行する
グローバルインストール時はnpxは不要です。
$ npx npm-check-updates -u
[INFO]: You can also use ncu as an alias
Upgrading ~~~~\package.json
[====================] 4/4 100%
sass-loader ^6.0.6 → ^7.1.0
style-loader ^0.19.0 → ^0.23.1
webpack ^3.6.0 → ^4.29.6
Run npm install to install new versions.
これでまずpackage.jsonのみ更新されます。
package.json
~~省略~~
"dependencies": {
"sass-loader": "^7.1.0",
"style-loader": "^0.23.1",
"webpack": "^4.29.6"
},
パッケージの指示通り、下記を実行します。
$ npm install
~~省略~~
added 84 packages from 74 contributors, removed 77 packages, updated 25 packages and audited 4439 packages in 13.19s
found 0 vulnerabilities
2コマンドで全部更新されます。
すごく便利ですので、未導入の方は導入を検討されてもいいかもしれません。
なお、これでは更新できないものもあったりするので、
気をつけてください。
具体的にはBabel6から7へのアップデートはこれでは無理です。
他にもあると思うので、エラーがでたら1つ1つ対処すれば問題ないです。