👷
【備忘録】Node.jsでスクリプトを実行するとERR_REQUIRE_ESMが発生してしまう時の対処法
Node.jsでスクリプトを実行するとERR_REQUIRE_ESMが発生してしまって検証できないという事案に遭遇したので備忘録的に残しておきます。
解決策
package.jsonに下記の記述を追加して、エラーの原因となっているパッケージのバージョンを固定することで解決します。
package.json
{
// ...OTHER
"resolutions": {
// 環境によって変わる
"strip-ansi": "6.0.1",
"string-width": "4.2.3"
}
}
記述を追加したら依存関係を再インストールしましょう。
// 環境によって変わる
$ yarn
これできっとスクリプトが期待通り動くはずです。
原因
スクリプトで実行しようとしているパッケージがCommonJS書かれているのに、依存パッケージのstrip-ansi
・string-width
がバージョンアップに伴ってESMに移行してしまっているのが原因のようです。
最近思っていること
npmの依存関係は開発がひと段落するタイミングでバージョン固定しておいたほうがいいですよね。
(マナーバージョンアップでESMに移行するなっていう話ではありますが。)
Discussion
stylelint以外にstorybook、plopでも同様の事象に遭遇したので少し内容を変更しました😇