How are module specifiers resolved?

# Tyler Breisacher (10 years ago)

As far as I can tell, the ECMAScript spec doesn't answer this directly. The HostNormalizeModuleName section says: "The actual normalization mapping is implementation defined but typically includes processes such alphabetic case normalization and expansion of abbreviated file system paths." ( people.mozilla.org/~jorendorff/es6-draft.html#sec-hostnormalizemodulename) so it sounds like the details of how that will work in web browsers, and how it will work in node.js, etc., will be defined in a different spec, perhaps owned by the w3c or something like that. Does (a draft of) that other spec exist yet?

# Isiah Meadows (10 years ago)

From: Tyler Breisacher <tbreisacher at google.com> To: es-discuss at mozilla.org Cc: Date: Mon, 10 Nov 2014 10:07:52 -0800 Subject: How are module specifiers resolved? As far as I can tell, the ECMAScript spec doesn't answer this directly.

The HostNormalizeModuleName section says: "The actual normalization mapping is implementation defined but typically includes processes such alphabetic case normalization and expansion of abbreviated file system paths." ( people.mozilla.org/~jorendorff/es6-draft.html#sec-hostnormalizemodulename) so it sounds like the details of how that will work in web browsers, and how it will work in node.js, etc., will be defined in a different spec, perhaps owned by the w3c or something like that. Does (a draft of) that other spec exist yet? Thanks!

As far as my understanding goes, there may not be a consistent, universal spec. Node may choose to handle paths one way, and W3C another. The Web will likely need to address Web resources and their location on the Internet, whereas on Node, Rhino, etc., that problem may likely never exist, as they won't need the features. Conversely, those platforms will have to take into account Windows vs Unix path names, which are a whole different beast in of themselves, one Web pages may never have to touch.