Jestを実行するとエラー「Error [ERR_REQUIRE_ESM]: require() of ES Module」になったので解決した。

Next.jsで大きめのページを開発しつつ、StorybookやComponentsを作成していた。
ひと段落したタイミングでJestを実行するとエラーが出るようになっていた。

% yarn test
yarn run v1.22.19
$ jest ./src
Error [ERR_REQUIRE_ESM]: require() of ES Module /node_modules/string-width/index.js from /node_modules/cliui/build/index.cjs not supported.
目次

エラーを改善する

Stack Overflowを読んでると、configや、package.jsonの書き換えで対応した、という内容が多かったが、今回の件では、外部パッケージの依存ではと考えて、スマートに対応した。

yarn のキャッシュ削除

先にyarnのキャッシュを削除する。

yarn cache clean

関連するディレクトリ、ファイルを削除

node_modules、yarn.lockを削除します。

パッケージを再インストール

パッケージを再インストールします。

yarn

Summary

以上で、エラーが解消されます。

意図した変更をしていない場合は、まずはクリーンアップしてから他の原因を調査すると良さそうです。

よかったらシェアしてね!
目次