Nodeモジュールは戦争中 : CommonJS vs ESM
(redfin.engineering)CJSとESMは実装がまったく異なる。相互に呼び出すことは可能だが、面倒。
-
CJS :
require()とmodule.exports -
ESM :
importとexport
両者を詳しく比較し、なぜ違うのか、そして連携が面倒な理由を内部実装まで踏み込んで説明した記事。
著者がNodeライブラリ開発者に勧めるガイドライン。
-
CJS版を提供し、
-
CJSの上に薄いESMラッパーを提供し、そのうえで
-
package.jsonにexportsを追加する
もちろんESMのほうが新しい方法ではあるが、変更点が多く、CJSの上にESMラッパーを提供するほうが簡単なので、現時点ではこれが最善の方法だろうとのこと。
まだコメントはありません。