creat next-app ができない!!
今記事の内容
事象: creat next-app
で package.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... |
正規表現をバージョン表記に当てはめてみます
^12.13.0
なら、12.13.0 はマッチする、と言えそうです
次に、末尾の
>=15.0.0"
は、以上(超過ではない)
なので、 15系は 15.0.0 以上に適合と言えそうです
Discussion