Closed
Description
Version
v21.4.0
Platform
linux
Subsystem
No response
What steps will reproduce the bug?
File main.mjs
import { four } from 'foo.mjs';
console.log(four());
File node_modules/foo.mjs
:
export function four() {
return 4;
}
Result:
node:internal/process/esm_loader:34
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'foo.mjs' imported from /usr/local/google/home/walkingeyerobot/nodetest/main.mjs
Did you mean to import foo.mjs?
at packageResolve (node:internal/modules/esm/resolve:853:9)
at moduleResolve (node:internal/modules/esm/resolve:910:20)
at defaultResolve (node:internal/modules/esm/resolve:1130:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
at link (node:internal/modules/esm/module_job:84:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
Node.js v21.4.0
How often does it reproduce? Is there a required condition?
No response
What is the expected behavior? Why is that the expected behavior?
I would expect one of:
- (preferred) The module loads, and the number 4 is printed
- The error message does not suggest to me to do exactly what I'm already doing
What do you see instead?
The error message tries to be helpful and suggests I try to import from foo.mjs
, but that's exactly what I'm already doing. It seems like node can see there is a foo.mjs
to import when printing an error message but not when doing the actual import. The error messaging and the importing should follow the same logic so as to give helpful error messages.
Additional information
No response
Metadata
Metadata
Assignees
Labels
No labels
Activity