かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

React create-react-app でプロジェクトを作成できないにハマる

$ npx create-react-app my-app

で、Reactのプロジェクトを作成しようとしたけど、プロジェクトのフォルダが作成されてない現象になっていた。
その時のログはこんな感じ

$ npx create-react-app my-app
...
yarn add v1.16.0
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error eslint@6.1.0: The engine "node" is incompatible with this module. Expected version "^8.10.0 || ^10.13.0 || >=11.10.1". Got "11.4.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Aborting installation.
  yarnpkg add --exact react react-dom react-scripts --cwd my-app has failed.

Deleting generated file... package.json
Deleting generated file... yarn.lock
Deleting test-app/ from /Users/kikiki/Documents/local
Done.

error eslint@6.1.0: The engine "node" is incompatible with this module.

eslint@6.1.0: の node.js のバージョンが ^8.10.0 || ^10.13.0 || >=11.10.1 でないとダメっぽい。

$ node -v
v11.4.0

いつだったか調子に乗って最新版を入れてみたのが良くなかった…

node.js のバージョンを最新の推奨版 (LTS) にすればOK

Node.js のサイトで最新のLTS版を確認してインストールする。
この記事を書いた段階だと v10.16.3

node.js は nodebrew で管理してたので、nodebrew で v10.16.3 をインストールしてデフォルトに設定する

$ nodebrew install v10.16.3
$ nodebrew use v10.16.3
$ nodebrew alias default v10.16.3
$ node -v
v10.16.3

node.js のバージョンが変更されてばOK

create-react-app

node.js のバーションを推奨版にして再度 create-react-app

$ npx create-react-app my-app

問題なく React のプロジェクトが作成されていればOK!

global に入れていたパッケージを移行する方法

migrate は nodebrew migrate-package <取り込み元のバージョン>

$ nodebrew migrate-package v11.4.0

ポエム

node.js のバージョン変えてたのとかすっかり忘れてたのでハマってしまった。
ずっと nodebrew で管理してたけど、nodebrew は常に1つバージョンで動作するから grunt 使ってた頃とかのプロジェクト触ったり切り替え忘れたりすることが稀にあった。フリーランスとかでいろんな node.js のバージョンのプロジェクトに同時に関わってると大変そう。 local ごとに node.js のバージョンを切り替えられる nodenv (ndenv ?) ってのがあるみたいなので、近々乗り換えようかな〜って思ってる (nodebrew にしたの2年前だった…)


彼方のアストラめっちゃおもしろいよ。観なくても損はしないけど、観ると得するゾ!