Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong error annotation when commonjs requires an ES module #55350

Open
targos opened this issue Oct 10, 2024 · 2 comments
Open

Wrong error annotation when commonjs requires an ES module #55350

targos opened this issue Oct 10, 2024 · 2 comments
Labels
confirmed-bug Issues with confirmed bugs.

Comments

@targos
Copy link
Member

targos commented Oct 10, 2024

Version

  • ^22.4.0
  • main with the --no-experimental-require-module flag.

Platform

macOS arm64

Subsystem

esm,module

What steps will reproduce the bug?

mkdir undefined && cd undefined
echo '{"type":"module"}' > package.json
echo "import nothing from 'somewhere'" > app.js
echo "require('./app.js')" > test.cjs
node test.cjs

How often does it reproduce? Is there a required condition?

It starts to happen with v22.4.0. v20.x and <=22.3.0 are not affected.

What is the expected behavior? Why is that the expected behavior?

$ node test.cjs
/Users/mzasso/git/test/undefined/test.cjs:1
require('./app.js')
^

Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/mzasso/git/test/undefined/app.js from /Users/mzasso/git/test/undefined/test.cjs not supported.
Instead change the require of app.js in /Users/mzasso/git/test/undefined/test.cjs to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (/Users/mzasso/git/test/undefined/test.cjs:1:1) {
  code: 'ERR_REQUIRE_ESM'
}

Node.js v22.3.0

What do you see instead?

$ node test.cjs
/Users/mzasso/git/test/undefined/test.cjs:315
undefined
             ^

Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/mzasso/git/test/undefined/app.js from /Users/mzasso/git/test/undefined/test.cjs not supported.
Instead change the require of app.js in /Users/mzasso/git/test/undefined/test.cjs to a dynamic import() which is available in all CommonJS modules.
    at TracingChannel.traceSync (node:diagnostics_channel:315:14)
    at Object.<anonymous> (/Users/mzasso/git/test/undefined/test.cjs:1:1) {
  code: 'ERR_REQUIRE_ESM'
}

Node.js v22.4.0

Additional information

As you can see, this seems to be caused by the presence of TracingChannel.traceSync in the stack trace.

@RedYetiDev RedYetiDev added the confirmed-bug Issues with confirmed bugs. label Oct 10, 2024
@targos
Copy link
Member Author

targos commented Oct 10, 2024

Probably caused by #44340 @Qard

@Qard
Copy link
Member

Qard commented Oct 10, 2024

@RafaelGSS is the one that finished and landed that PR, so they would probably know better what is going on here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed-bug Issues with confirmed bugs.
Projects
None yet
Development

No branches or pull requests

3 participants