module: pass full URL to loader for top-level load

PR-URL: https://github.com/nodejs/node/pull/29736
Reviewed-By: Bradley Farias <bradley.meck@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
This commit is contained in:
Guy Bedford 2019-09-26 23:20:09 -04:00 committed by Rich Trott
parent 1a3bf4f935
commit c42ab995c1
2 changed files with 3 additions and 3 deletions

View File

@ -1002,7 +1002,7 @@ Module.runMain = function() {
// Load the main module--the command line argument. // Load the main module--the command line argument.
if (experimentalModules) { if (experimentalModules) {
asyncESM.loaderPromise.then((loader) => { asyncESM.loaderPromise.then((loader) => {
return loader.import(pathToFileURL(process.argv[1]).pathname); return loader.import(pathToFileURL(process.argv[1]).href);
}) })
.catch((e) => { .catch((e) => {
internalBinding('errors').triggerUncaughtException( internalBinding('errors').triggerUncaughtException(

View File

@ -15,11 +15,11 @@ export function resolve(specifier, parentModuleURL = baseURL /*, defaultResolve
format: 'builtin' format: 'builtin'
}; };
} }
if (/^\.{0,2}[/]/.test(specifier) !== true && !specifier.startsWith('file:')) { if (/^\.{1,2}[/]/.test(specifier) !== true && !specifier.startsWith('file:')) {
// For node_modules support: // For node_modules support:
// return defaultResolve(specifier, parentModuleURL); // return defaultResolve(specifier, parentModuleURL);
throw new Error( throw new Error(
`imports must begin with '/', './', or '../'; '${specifier}' does not`); `imports must be URLs or begin with './', or '../'; '${specifier}' does not`);
} }
const resolved = new url.URL(specifier, parentModuleURL); const resolved = new url.URL(specifier, parentModuleURL);
const ext = path.extname(resolved.pathname); const ext = path.extname(resolved.pathname);