😵
[MODULE_TYPELESS_PACKAGE_JSON] Warningが出た時の対策
開発環境を構築中に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