LoginSignup
2
3

More than 5 years have passed since last update.

Node.jsで古いパッケージを一気に更新する

Last updated at Posted at 2019-03-21

背景

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つ対処すれば問題ないです。

2
3
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
2
3