#結論
nodeのバージョンを上げた後で下記コマンドを実行。
バージョンを上げる前にグローバルインストールしていたコマンド達を、バージョンアップ後のnodeに一括でグローバルインストールしてくれる。
nodebrew migrate-package 11.9.0(適宜置き換え)
11.9.0は今まで使っていたバージョンです。
私の場合は11.9.0から11.10.1にバージョンを上げたので、11.9.0を指定しました。
(助けて貰った記事一覧)
#What's happend?
以下、この記事を書こうと思った事象についての日記となります...
(2019/9/15)
本日1週間ぶりにcreate-react-app
すると、失敗するようになってました。
依存でインストールされるeslint
が要求するnodeのバージョンと私が使用していたnodeのバージョン(11.9.0)が合わなくなった事が原因でした。
なのでnodebrew
でnodeのバージョンを上げました。
改めてcreate-react-app
すると...
$ create-react-app myapp
-bash: create-react-app: command not found
コマンドが無くなってしまいました...
コマンドの置き場所を確認してみると、
今まで入れてたものが無くなってしまっている...
(before)
$ ls /Users/gossan/.nodebrew/current/bin/
create-react-app npm surge
firebase npx wscat
gatsby serverless yarn
node sls yarnpkg
nodebrew slss
(after)
$ ls /Users/gossan/.nodebrew/current/bin/
node nodebrew npm npx
グローバルインストールしたコマンドは、インストール時のnodeのバージョンに紐づけられるんですね。この時点でやっと気づきました。
一括で引き継ぐためのコマンドが無い筈が無いと思い調べると、
nodebrew migrate-package xx.xx.xx(旧バージョン)
で解決するらしい事を発見。
元々11.9.0を使っていたので下記のよう試しました。
$ nodebrew migrate-package 11.9.0
〜(略)〜
Try to install yarn ...
/Users/gossan/.nodebrew/node/v11.10.1/bin/yarnpkg -> /Users/gossan/.nodebrew/node/v11.10.1/lib/node_modules/yarn/bin/yarn.js
/Users/gossan/.nodebrew/node/v11.10.1/bin/yarn -> /Users/gossan/.nodebrew/node/v11.10.1/lib/node_modules/yarn/bin/yarn.js
+ yarn@1.17.3
added 1 package in 0.052s
〜(略)〜
Try to install create-react-app ...
/Users/gossan/.nodebrew/node/v11.10.1/bin/create-react-app -> /Users/gossan/.nodebrew/node/v11.10.1/lib/node_modules/create-react-app/index.js
+ create-react-app@3.1.1
added 1 package in 0.248s
Installed successfully:
serverless
surge
yarn
gatsby-cli
firebase-tools
wscat
create-react-app
11.9.0でグローバルインストールしていたものをグローバルインストールし直してくれているようですね。
改めてグローバルインストールされたコマンドを確認すると、、、
$ ls /Users/gossan/.nodebrew/current/bin/
create-react-app npm surge
firebase npx wscat
gatsby serverless yarn
node sls yarnpkg
nodebrew slss
全部ありました!
元々使いたかったcreate-react-app
も復活しました!