Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
Closed
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.
Description
- Version: 13.9, 14.1
- Platform: All
- Subsystem: ES modules
What steps will reproduce the bug?
Create file package.json:
{"type": "module" }Create file main (no extension):
console.log('ok');Run:
node ./mainHow often does it reproduce? Is there a required condition?
Always.
What is the expected behavior?
main file to be executed.
What do you see instead?
> node ./maininternal/modules/run_main.js:54 internalBinding('errors').triggerUncaughtException( ^TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension "" for C:\Users\evg656e\Projects\sandbox\js\experimental-loader\main at Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:65:15) at Loader.getFormat (internal/modules/esm/loader.js:113:42) at Loader.getModuleJob (internal/modules/esm/loader.js:244:31) at async Loader.import (internal/modules/esm/loader.js:178:17){ code: 'ERR_UNKNOWN_FILE_EXTENSION'}Additional information
This works in version 12. But does not work in versions 13 and 14. --experimental-specifier-resolution=node flag does not help.
Real world example: we have mocha (which main entry file is extensionless), we have ts-node esm-loader, now we want to test ts files with native es modules, like that:
node --loader ts-node/esm.mjs node_modules/mocha/bin/mocha --extension tsbut we get the error described above. But if we rename node_modules/mocha/bin/mocha to node_modules/mocha/bin/mocha.js, then everything works as expected.
Metadata
Metadata
Assignees
Labels
esmIssues and PRs related to the ECMAScript Modules implementation.Issues and PRs related to the ECMAScript Modules implementation.