Node.js has different resolve algorithm for require
(hereinafter, called "CJS resolver") and import
(hereinafter, called "ESM resolver").
Spec of CJS resolver: https://nodejs.org/api/modules.html#all-together Spec of ESM resolver: https://nodejs.org/api/esm.html#resolver-algorithm-specification
Vite needs to support both of them.