This is discussed in the link I posted. Bundlers manage to statically analyze CommonJS just fine. With require("stringliteral") and
exports.thing = thing, that cover 99.9% or so usage, this is just as easy to statically analyze as ESM.
Saying that you need declarative for static analysis is like saying tail call optimization is impossible.
And if a stricter module system would be still required, it could have been quite easy to make compatible with, well, require.
Saying that you need declarative for static analysis is like saying tail call optimization is impossible.
And if a stricter module system would be still required, it could have been quite easy to make compatible with, well, require.