You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
esm: invalid extension error should provide parent context in error #30721
When trying to import a JSON file, the error message provided is the following:
(node:7004) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/run_main.js:50
internalBinding('errors').triggerUncaughtException(
^
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension: C:\Users\Mercy\Desktop\New folder\node_modules\patron.js\package.json
at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:114:13)
at Loader.resolve (internal/modules/esm/loader.js:74:33)
at Loader.getModuleJob (internal/modules/esm/loader.js:148:40)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:41:40)
at link (internal/modules/esm/module_job.js:40:36) {
code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
How to reproduce:
Create test.mjs with import './package.json'
Run node test.mjs
To help debug this error we should ensure it provides the name of the parent module that attempted the file extension load - something like imported from /path/to/test.mjs.
If you run this example with node --experimental-json-modules index.js it gives a different error so the problem is that you actually have an import to the package.json file somewhere in the tree.
We should look at improving this error message to include the parent module that cause the load to provide debugging context. For that reason I'm changing the title and marking this as a bug.
changed the title [-]esm: modules with file extention in name cannot be imported[/-][+]esm: invalid extension error should provide parent context in error[/+]on Nov 29, 2019
Would it be okay to modify default_resolve (the only place I see this error being used) so that parentURL is passed into ERR_UNKNOWN_FILE_EXTENSION, or is there a better way of getting the parent URL inside the error function?
Activity
addaleax commentedon Nov 29, 2019
@nodejs/modules-active-members
guybedford commentedon Nov 29, 2019
If you run this example with
node --experimental-json-modules index.jsit gives a different error so the problem is that you actually have an import to the package.json file somewhere in the tree.We should look at improving this error message to include the parent module that cause the load to provide debugging context. For that reason I'm changing the title and marking this as a bug.
[-]esm: modules with file extention in name cannot be imported[/-][+]esm: invalid extension error should provide parent context in error[/+]guybedford commentedon Nov 29, 2019
(@LJNeon I hope you don't mind me rewording your original issue to reflect the root cause, we can move it to another issue if you'd prefer too.)
qualitymanifest commentedon Nov 30, 2019
I'd like to give this a try.
Would it be okay to modify default_resolve (the only place I see this error being used) so that
parentURLis passed intoERR_UNKNOWN_FILE_EXTENSION, or is there a better way of getting the parent URL inside the error function?lib: add parent to ERR_UNKNOWN_FILE_EXTENSION
lib: add parent to ERR_UNKNOWN_FILE_EXTENSION
lib: add parent to ERR_UNKNOWN_FILE_EXTENSION