Reactのアプリケーションを作ってみようかなとコマンドを叩くと、「nodeのバージョンが古いよ」というエラーが出たのでその時の対処手順メモ。
発生したエラー
$ create-react-app react-test
上記コマンドでreact-testという名前のReactアプリを作成しようとしたら以下のエラー発生。
$ create-react-app react-test Creating a new React app in /Users/username/react-test Installing packages. This might take a couple of minutes. Installing react, react-dom, and react-scripts... yarn add v1.15.2 info No lockfile found. [1/4] 🔍 Resolving packages... warning react-scripts > react-app-polyfill > core-js@2.6.4: core-js@<2.6.5 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2. info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... warning react-scripts > jest > jest-cli > prompts > kleur@2.0.2: Please upgrade to kleur@3 or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0\> for migration path(s). info There appears to be trouble with your network connection. Retrying... warning react-scripts > eslint > file-entry-cache > flat-cache > circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor. info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... [2/4] 🚚 Fetching packages... info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... info There appears to be trouble with your network connection. Retrying... error react-dev-utils@8.0.0: The engine "node" is incompatible with this module. Expected version ">=8.10". Got "8.9.4" 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 /Users/username/react-test has failed. Deleting generated file... package.json Deleting react-test / from /Users/username Done.
解決までの流れ
「Expected version ">=8.10". Got "8.9.4"」と言われているので、nodeのバージョンが古くなっているのかなと思いnodeのバージョンを確認。
$ node -v v8.9.4
案の定古いですね。バージョン8.9.4になっています。
単純にnodeのバージョンあげればいいかなと思ってbrewでupgradeを試しましたが、すでにnodeの最新バージョンはinstall済みだと。
$ brew upgrade node Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/cask). No changes to formulae. /usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/node.rb Error: node 11.12.0 already installed Error: Kernel.exit /usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:85:in `exit' /usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:85:in `upgrade' /usr/local/Homebrew/Library/Homebrew/brew.rb:102:in `<main>'
node.jsをのversion管理するためのnodebrewを使うことに。
$ nodebrew nodebrew 0.9.7
なければbrewでnodebrewをインストールしようと思いましたが、nodebrewは使える状態にありました。
古いnodeがあっても使うことはないだろうし、一旦nodeをアンインストールして最新のnodeだけインストールしておくことに。
$ brew uninstall --force node Error: Refusing to uninstall /usr/local/Cellar/node/11.12.0 because it is required by yarn, which is currently installed. You can override this and force removal with: brew uninstall --ignore-dependencies node
アンインストールさせてもらえない...。
強制的にアンインストールしたいなら「brew uninstall --ignore-dependencies node」を使えと。
$ brew uninstall --ignore-dependencies node Uninstalling /usr/local/Cellar/node/11.12.0... (4,417 files, 50.2MB)
強制的にアンインストールしました。
以下のコマンドで安定版の最新バージョンをnodebrewでインストールしようとしましたが、失敗。
$ nodebrew install-binary stable Fetching: https://nodejs.org/dist/v11.13.0/node-v11.13.0-darwin-x64.tar.gz Warning: Failed to create the file Warning: /Users/username/.nodebrew/src/v11.13.0/node-v11.13.0-darwin-x64.tar.gz Warning: : No such file or directory curl: (23) Failed writing body (0 != 1058) download failed: https://nodejs.org/dist/v11.13.0/node-v11.13.0-darwin-x64.tar.gz
nodebrewのパス設定ができていないのかな?ということでパス設定をして
$ nodebrew setup Fetching nodebrew... Installed nodebrew in $HOME/.nodebrew ======================================== Export a path to nodebrew: export PATH=$HOME/.nodebrew/current/bin:$PATH ========================================
再度nodeの安定版のインストール実行
$ nodebrew install-binary stable Fetching: https://nodejs.org/dist/v11.13.0/node-v11.13.0-darwin-x64.tar.gz ######################################################################## 100.0% Installed successfully
今度はインストール成功した!
nodeのバージョンを確認してみる。
$ nodebrew ls v11.13.0 current: none
「current: none」となっているので、どのnodeのバージョンを使うか設定されていない状態。
以下コマンドでバージョン11.13.0を使うようにする。
$ nodebrew use v11.13.0 use v11.13.0
nodeのバージョンは11.13.0になったか、以下コマンドで確認する。
$ node -v v8.9.4
古いまま...。nodebrewのパスがうまく通ってないのかな?ということで、bashrcにパスを読み込ませるように「export PATH=$HOME/.nodebrew/current/bin:$PATH」を追加して.bashrcを保存する。
$ vi ~/.bashrc export PATH=$HOME/.nodebrew/current/bin:$PATH
この状態で、別ターミナルを起動(= bashrcファイルを再読み込み)して、再度nodebrewで11バージョンを使うように明示し、nodeのバージョン確認。
$ nodebrew use v11.13.0 use v11.13.0 $ node -v v11.13.0
バージョン11を使うようになっている!
この状態で満を持してReactアプリケーションを作成
$ create-react-app test Creating a new React app in /Users/username/react-test. ... We suggest that you begin by typing: cd react-test yarn start Happy hacking!
Happy hacking! Reactアプリ作成できた〜!
以上、nodeのバージョン管理にちょっと詰まった時の解決方法メモでした。
では!