-
-
Notifications
You must be signed in to change notification settings - Fork 32.9k
Closed
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.windowsIssues and PRs related to the Windows platform.Issues and PRs related to the Windows platform.
Description
- Version: v8.5.0
- Platform: Windows 64-bit
- Subsystem: Es module
Hi,
First of all, I want to thank you for your wonderful work!
I try to run simple example using es module (which @MylesBorins share on Twitter), but I stuck on error.
At first I updated today to node version 8.5.0. and write this two simple files
helper.mjs
export function helperMethod() {
console.log(`I'm helping!`);
}
index.mjs
import {helperMethod} from './helper.mjs';
helperMethod();
and after running command node --experimental-modules index.mjs
, I receive error
F:\Projekty\Learn\nodejs-workshop>node --experimental-modules index.mjs
(node:7036) ExperimentalWarning: The ESM module loader is experimental.
{ AssertionError [ERR_ASSERTION]: An invalid error message key was used: ERR_INVALID_PROTOCOL.
at message (internal/errors.js:70:3)
at NodeError (internal/errors.js:29:13)
at resolveRequestUrl (internal/loader/resolveRequestUrl.js:84:11)
at Loader.import (internal/loader/Loader.js:61:27)
at Function.Module._load (module.js:462:27)
at Function.Module.runMain (module.js:665:10)
at startup (bootstrap_node.js:201:16)
at bootstrap_node.js:626:3
generatedMessage: false,
name: 'AssertionError [ERR_ASSERTION]',
code: 'ERR_ASSERTION',
actual: undefined,
expected: true,
operator: '==' }
Additionally it looks like some problem with NodeErorr module.
I updated node source code and build it locally to test this behavior, and then I receive this error when I try to run this two files
F:\Projekty\Learn\node>cd Release
F:\Projekty\Learn\node\Release>node -e "console.log('Hello from Node.js', process.version)"
Hello from Node.js v9.0.0-pre
F:\Projekty\Learn\node\Release>node --experimental-modules index.mjs
(node:18136) ExperimentalWarning: The ESM module loader is experimental.
{ Error [ERR_INVALID_PROTOCOL]: Protocol "f:" not supported. Expected "file:"
at resolveRequestUrl (internal/loader/resolveRequestUrl.js:84:11)
at Loader.import (internal/loader/Loader.js:61:27)
at Function.Module._load (module.js:438:27)
at Function.Module.runMain (module.js:641:10)
at startup (bootstrap_node.js:201:16)
at bootstrap_node.js:626:3 [Symbol(code)]: 'ERR_INVALID_PROTOCOL' }
And this how specifier
, baseUrl
and url
object looks like in resolveRequestURl.js
module, after I put some console.log.
resolveRequestURl.js
const baseURL = normalizeBaseURL(baseURLOrString);
console.log(`log: ${specifier}, ${baseURL}`);
let url = search(specifier, baseURL);
console.log(url);
if (url.protocol !== 'file:') {
throw new errors.Error('ERR_INVALID_PROTOCOL', url.protocol, 'file:');
}
result
log: F:\Projekty\Learn\node\Release\index.mjs, file:///F:/Projekty/Learn/node/Release/
URL {
href: 'f:\\Projekty\\Learn\\node\\Release\\index.mjs',
origin: 'null',
protocol: 'f:',
username: '',
password: '',
host: '',
hostname: '',
port: '',
pathname: '\\Projekty\\Learn\\node\\Release\\index.mjs',
search: '',
searchParams: URLSearchParams {},
hash: '' }
aeroxmotion, lidongjies, amitport, Coder2012 and alexgwolff
Metadata
Metadata
Assignees
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.windowsIssues and PRs related to the Windows platform.Issues and PRs related to the Windows platform.