node-fetchパッケージが、v3.2.0からFormDataなどをエクスポートするようになっていた。これによりform-dataパッケージやformdata-nodeパッケージが不要になった。標準非互換の問題から始まって、いろいろあって使いやすいようになったのだろうと思う。イシューの乱立を避けるような狙いもあるかもしれない。

import fetch, { FormData } from "node-fetch";

初めてこういう書き方をした。defaultはそのままなので、こう書くことになる。落ち着かない。あまり書かれないからか、node-fetchパッケージのドキュメントでも間違ったコードが書かれていた。


Node.js v17から、標準モジュールにnode:を付けてインポートするように変わりつつある。そのため、node-fetchというパッケージ名が紛らわしくなってしまった。どうにかなってほしいところだが、人気パッケージが名前を変更することは難しそうだ。