TypeScript(NodeJS)

【NodeJS】Fetch APIでExperimentalWarningが出た時の対処法

TypeScript で作成したコードを実行した際に出たエラー。

(node:47543) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time

どうやら OpenAPI Generator で typescript-fetch を generate に利用したため、内部で「Fetch API」が使われている模様。

今回はこの Warning の対応をしていきます。

NodeJSのバージョン

ちなみに、ローカルの NodeJS が brew でインストールされていて古かったので変更を。

残念ながら brew だと偶数バージョンしか選択できないようなので nodenv でバージョン切り替えできるようにしました。

しかも、まだ 18.x はインストールできなさそう。

一旦、brew でインストールされている node は削除しちゃいましょう。

nodenvでバージョン管理

では早速、nodenv をインストールしていきましょう。

nodenv をインストールしたら、どの node バージョンがインストール可能か確認します。

今回の ExperimentalWarning の挙動を確認するなら、17.9.1 と 18.1.0 を入れてみましょうか。

node18でfetchの動作確認

どうやら、node18 では同様の問題は出ませんでした。

この Warning は node17.x で発生したものなので、17.x で確認してみましょうか。

node17でfetchの動作確認

node17 では同様の問題が発生しました。

17.9.0 であれば、fetch の機能は持っているのでエラーになるのは不思議です。

よくよく調べてみると、node 実行時に「–experimental-fetch」のオプションが必要とのこと。

node –experimental-fetch dest/index.js

これを付けたら警告が出なくなりました。

まとめ

NodeJS の ExperimentalWarning の警告について調べてきました。

NodeJS もそうですが、Kubernetes など最近はメジャーバージョンアップの頻度やサポート期間が厳密になりつつあります。

いつでも複数バージョンが気軽に試せる開発環境を用意しておきたいですね。

nodenv に限らず、nvm(Node Version Manager)や nodebrew など複数の NodeJS を管理できるツールはあります。

どれが正解というわけでもないので、使いやすいツールで OK です。

っと書いていたら、過去にこんな記事を書いていたことに気付く・・・。

Macにnvmやnodebrew以外の方法でNodeJSの特定バージョンをインストールするMac 上で NodeJS 12.x を使って動作確認したい処理があったのですが、ターミナルでバージョンを確認してみると 13.x でし...