🥶
npx prisma initでError: (0 , CSe.isError) is not a functionが発生した対処方法
課題
Prismaを利用するためにprisma init
を実行すると、下記のエラーが発生する。
Error: (0 , CSe.isError) is not a function
具体的には下記のように表示されています。
$ npx prisma init
(node:28133) ExperimentalWarning: CommonJS module /Users/hoge/.asdf/installs/nodejs/23.2.0/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /Users/hoge/.asdf/installs/nodejs/23.2.0/lib/node_modules/npm/node_modules/supports-color/index.js using require().
Support for loading ES Module in require() is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
Error: (0 , CSe.isError) is not a function
この課題を解決しないとprismaを利用できない。
発生した環境
$ node -v
v23.2.0
$ npm -v
10.9.0
対処方法
結論
v20.18.0 にダウングレードする
下記のissueにて議論がされています。
ノードのバージョンを v23.0.0 から v20.18.0 にダウングレードする必要がありました。ダウングレードしてみると、問題が解決するかもしれません。
なぜダウングレードする必要があるのか?
Prismaでは、Node.js v23をサポートされていないから。
これはissueでも語られていますが、Node.js v23は安定しておらず、Prismaでテストされていない。
こんにちは、Prisma の Alberto です。Node.js
23 は安定しておらず、Prisma はこれに対してテストされていません: https://www.prisma.io/docs/orm/reference/system-requirements。
目安としては、Node.js 18.xy や 20.xy など、偶数の Node.js バージョンのみを使用することをお勧めします。上記のように、LTS バージョンを使用するとさらに良いでしょう。
Node.js23は、Prismaの推奨バージョンではありません。
実際にリンクで飛んで確認すると、Node.js v 23が対応されていないことがわかります。
要点
- Node.jsは偶数バージョンを利用しよう
- PrismaではNode.js v23はサポートされていない
- このため、Prismaを利用するにはv20にダウングレードする必要がある。
versionをダウングレードする
Node.jsのバージョンを変更していきます。
自分の環境では、asdfでNodeのバージョンを管理しているので、asdfでバージョンを更新します。
$ asdf install nodejs 20.18.0
$ asdf global nodejs 20.18.0
これで改めてprismaをinitすると、成功しました
$ npx prisma init
✔ Your Prisma schema was created at prisma/schema.prisma
You can now open it in your favorite editor.
warn You already have a .gitignore file. Don't forget to add `.env` in it to not commit any private information.
Next steps:
1. Set the DATABASE_URL in the .env file to point to your existing database. If your database has no tables yet, read https://pris.ly/d/getting-started
2. Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlite, sqlserver, mongodb or cockroachdb.
3. Run prisma db pull to turn your database schema into a Prisma schema.
4. Run prisma generate to generate the Prisma Client. You can then start querying your database.
5. Tip: Explore how you can extend the ORM with scalable connection pooling, global caching, and real-time database events. Read: https://pris.ly/cli/beyond-orm
More information in our documentation:
https://pris.ly/d/getting-started
Discussion