-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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
Node can't recognize static import
of ES module when theres's not explicit marker
#51057
Comments
The docs seem incomplete. Detection is an experimental feature and currently requires the flag |
Yes, @meyfa , I tried |
@jasonjiicloud, did you add this "type":"module" in your package.json file. if not, this is causing the issue. |
The issue is in the documentation, as said above. |
@aduh95 id like to handle this, do the docs just need to be updated to mention using the flag? |
@jasonjiicloud you can add |
Yes, you could open a PR to fix the docs. |
I checked https://github.com/nodejs/node/blob/main/doc/api/cli.md?plain=1 at line 676 and it's mentioned that |
@aduh95 I made a pull request. It's showing 5 workflows awaiting approval and Merging is blocked. Did I do anything wrong? I'm fairly new to github. Please help. |
PR-URL: #51089 Fixes: #51057 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #51089 Fixes: #51057 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #51089 Fixes: #51057 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Jacob Smith <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
Version
v20.10.0
Platform
Darwin a.local 21.6.0 Darwin Kernel Version 21.6.0: Fri Sep 15 16:17:23 PDT 2023; root:xnu-8020.240.18.703.5~1/RELEASE_X86_64 x86_64
Subsystem
No response
What steps will reproduce the bug?
A "main.js" file with code
import path from 'path';
, nothing more.run
node main.js
How often does it reproduce? Is there a required condition?
Every time.
What is the expected behavior? Why is that the expected behavior?
According to the document https://nodejs.org/dist/latest-v20.x/docs/api/packages.html,
In following case, code will be treated as ES module:
Code that contains syntax that only parses successfully as ES modules, such as import or export statements or import.meta, when the code has no explicit marker of how it should be interpreted.
What do you see instead?
Error displayed:
(node:10393) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use
node --trace-warnings ...
to show where the warning was created)/Users/jasonji/main.js:1
import path from 'path';
^^^^^^
SyntaxError: Cannot use import statement outside a module
Additional information
The behavior of Node.js is not consistent with the document.
The text was updated successfully, but these errors were encountered: