ES modules are resolved and cached as URLs. This means that files containing special characters such as # and ? need to be escaped.

    file:, node:, and data: URL schemes are supported. A specifier like 'https://example.com/app.js' is not supported natively in Node.js unless using a [custom HTTPS loader][].