実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog

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を有効化

これ大変だけど、ゆくゆくは必要になってくるんだろうな。