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というパッケージ名が紛らわしくなってしまった。どうにかなってほしいところだが、人気パッケージが名前を変更することは難しそうだ。