😵

[MODULE_TYPELESS_PACKAGE_JSON] Warningが出た時の対策

2025/01/24に公開

開発環境を構築中にNode.jsでスクリプトを書いて、package.jsonにnpm scriptsとして実行してあげると[MODULE_TYPELESS_PACKAGE_JSON] Warningというエラーが出たのでメモ。

どういうことか

このエラーには続きがありまして。

Module type of file:///Users/hoge/Project/script.js is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to /Users/hoge/Project/package.json.

というものです。
要するにCommonJSとしてパースできなかったので、ES moduleとしてパースし直したけど、その分パフォーマンスに悪影響が出るよという警告です。

解決方法

package.jsonに"type": "module"を追加する

こちらはエラー文にも書いてある解決方法です。
ただ、この方法だとプロジェクト全体がES moduleとして扱われるので注意しましょう。

{
  "type": "module"
}

拡張子を.mjsにする

拡張子を.mjsにするとそのファイルをES moduleとして扱ってくれるので、警告も消えます。
今回は、CommonJSを利用している箇所もあったので、こちらの方法を採用しました。

Discussion