modulesがサポートされた。#14369フラグ付きでもESMが利用可能になったのは、はnode.jsにおいて最大の課題であったESMとCJSを識別する方法が決着したからである。blog.jxck.io.mjsによってESMとCJSが識別できるようになり、ESMとCJSの相互運用問題が解決された。これによってnode.jsのHostResolveImportedModuleの仕様が固まり、実装されたのだ。HostResolveImportedModuleについては過去調べたことがあった。"xxx"の"xxx"は環境依存で、それぞれの環境でHostResolveImportedModuleを実装する仕様になっている。下のドキュメントを読んでポイントをつかんでおこうと思った。Interoperability上記を参考にしたと思われる良記事があったのでそれも読んだ。application/javascriptを追加する。拡張子は.mjsで実装する。nodeでは当面--experimental-modulesフラグを付けて動かす。type="module">で書く。srcはもちろん.mjs。src="xxx.js">を入れるフォールバックを用意する(node)rollup.jsでバンドルして.jsを用意package.jsonを修正("main"に.js指定していれば拡張子を取っておく)だろうか。ブラウザ側は今のところフラグなしでESMをサポートしているのはChromeとSafariだけのようなので、フォールバックはしばらくは必要ですな。nodeはESMもCJSも読み込めるし、ライブラリを提供するのでなければもう.mjsでいいかなと。(import())もサポートされているようなので試してみようかな。