🛠️

creat next-app ができない!!

2021/04/11に公開

今記事の内容

事象: creat next-apppackage.json しか作られない
原因: node.js のバージョンが適合していなかった
やったこと: node.js をインストールし、バージョンを変更
結果: 通常通り creat next-app でプロジェクトが作成できるようになった


以下概要です


エラー文

error jest-worker@27.0.0-next.5:
The engine "node" is incompatible with this module.
Expected version "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0".
Got "14.17.3"

エラー jest-worker@27.0.0-next.5:
エンジンの "node" はこのモジュールと互換性がありません。
期待されたバージョンは "^ 10.13.0 || ^ 12.13.0 || ^ 14.15.0 ||> = 15.0.0。 14.17.3 を推奨します。



推奨された node.js のバージョンをインストール

nodenv install 14.17.3



使用する node バージョンをインストールしたバージョンに変更
(私はプロジェクトごとにバージョンを使い分けないためグローバルで指定)

nodenv global 14.17.3



念の為、バージョンが 14.17.3 になっているか確認

node -v

以下詳細です

create-next-app できない!

通常は以下のもの、

npx create-next-app

もしくは

yarn create next-app

で、 Next.js のセットアップがは完了だが、

✨  Done in 11.86s.

できあがったのは package.json のみ。
以下にあるように、インストールが中断されていた

yarn add v1.22.10
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error jest-worker@27.0.0-next.5:
The engine "node" is incompatible with this module. Expected version
"^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0".
Got "14.17.3"
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 next --cwd
  /Users/name/project has failed.

jest-worker で使う "node" に互換性がないよ!

とのこと
(jest とは、テスティングフレームで、Next.js のセットアップにデフォルトで含まれる)


以下、使用可能な node.js のバージョンが記載

Expected version "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"



例)

^10.13.0 

バージョン10系なら、 10.13.0 以上のものが使用可能
10系のバージョンには、 40 以上のバージョンがあるが、10.0.0 から 10.24.1 までのバージョンのうち、10.0.0 から 10.12.0 は使用できず、10.13.0 から 10.24.1 は使えるという表記のようです

バージョン表記について

先頭に ^ (サーカムフレックス circumflex)がついています
一般用途

  • 累乗の指数(2の3乗=2^3)を表すとき
    例えば google 検索欄に 2^3 と入力すると、 8 と出力されます

  • 言語の発音を表すときに使用するそうです
    使用国: フランス、ポルトガル、ベトナム等
    例) フランス語: hôpital (病院)

プログラミングでの用途

  • 文字入力をする場所を指し示す場所として、「キャレット」 と呼ばれていることもある
  • 正規表現
文字 説明 正規表現の例 マッチする例
^ 直後の文字が行の先頭にある場合にマッチします。 ^google google...

正規表現をバージョン表記に当てはめてみます

^12.13.0

なら、12.13.0 はマッチする、と言えそうです
次に、末尾の

>=15.0.0"

は、以上(超過ではない)
なので、 15系は 15.0.0 以上に適合と言えそうです

Discussion