2022-08-31
https://www.wantedly.com/companies/wantedly/post_articles/410531
ES Modulesは後発だけあって優れた特徴をいくつか持っています。そのため、Node.js周辺でもES Modulesを使おうとする試みが行われてきました。これは大きくFake ESMとNative ESMの2種類に大別されます。
Falke ESM って呼ぶのか〜。
非同期的処理の中で同期的処理の完了を待つことはできますが、同期的処理の中で非同期的処理の完了を待つことはできません。CJSからNative ESMのインポートはまさにこの本質的な問題に直面しているわけです。
なるほど、これは難しい・・・。
Storyshotは内部でjest.requireActualを使うなど、Native ESMに対応していない様子だったので、Storyshotを使わないように書き換えました。この作業については以下の記事で説明しています。
https://www.wantedly.com/companies/wantedly/post_articles/421107
なかなか思い切った対応だ〜!
Native ESMを有効化
これ大変だけど、ゆくゆくは必要になってくるんだろうな。