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
Restarting 'index.js'
(node:15356) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///C:/Users/Babak/Documents/Code/c12/index.js is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to C:\Users\Babak\Documents\Code\c12\package.json.
(Use `node --trace-warnings ...` to show where the warning was created)
file:///C:/Users/Babak/Documents/Code/c12/index.js:7
} = require("get-port-please")
^
ReferenceError: require is not defined in ES module scope, you can use import instead
at file:///C:/Users/Babak/Documents/Code/c12/index.js:7:5
at ModuleJob.run (node:internal/modules/esm/module_job:262:25)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:483:26)
Node.js v22.9.0
Failed running 'index.js'
So basically, this module fails to parse as either CommonJS or as ESM, and we show the ESM parsing error message. Perhaps we should show both, or show a special message for the common use case of using top-level await in a CommonJS module.
The text was updated successfully, but these errors were encountered:
RedYetiDev
added
the
esm
Issues and PRs related to the ECMAScript Modules implementation.
label
Nov 8, 2024
GeoffreyBooth
changed the title
Module syntax detection: confusing error when parsing a CommonJS module with top-level await
detect-module: confusing error when parsing a CommonJS module with top-level awaitNov 8, 2024
if(format==='commonjs'){constimportStatement=splitStack[1];// TODO(@ctavan): The original error stack only provides the single// line which causes the error. For multi-line import statements we// cannot generate an equivalent object destructuring assignment by// just parsing the error stack.constoneLineNamedImports=RegExpPrototypeExec(/{.*}/,importStatement);constdestructuringAssignment=oneLineNamedImports&&RegExpPrototypeSymbolReplace(/\s+as\s+/g,oneLineNamedImports,': ');e.message=`Named export '${name}' not found. The requested module`+` '${childSpecifier}' is a CommonJS module, which may not support`+' all module.exports as named exports.\nCommonJS modules can '+'always be imported via the default export, for example using:'+`\n\nimport pkg from '${childSpecifier}';\n${destructuringAssignment ?`const ${destructuringAssignment} = pkg;\n` : ''}`;constnewStack=StringPrototypeSplit(e.stack,'\n');newStack[3]=`SyntaxError: ${e.message}`;e.stack=ArrayPrototypeJoin(newStack,'\n');}
Porting from nodejs/TSC#1445 (comment):
index.js
:Getting this:
With this
package.json
:LOL. (
await
😈).Originally posted by @babakfp in nodejs/TSC#1445 (comment)
So basically, this module fails to parse as either CommonJS or as ESM, and we show the ESM parsing error message. Perhaps we should show both, or show a special message for the common use case of using top-level
await
in a CommonJS module.The text was updated successfully, but these errors were encountered: