-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
doc: clarify extensionless esm #30657
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should be documenting using a non-standard flag here in the docs... but we could improve the documentation above to make the difference between extensionless file path (path has no extension) and extensionless specifiers (path has extension, specifier doesn't, node resolves extension) clearer
doc/api/esm.md
Outdated
@@ -92,6 +92,9 @@ if the nearest parent `package.json` contains `"type": "module"`. | |||
```js | |||
// my-app.js, part of the same example as above | |||
import './startup.js'; // Loaded as ES module because of package.json | |||
|
|||
// Extensionless. Requires 'node --es-module-specifier-resolution=node' | |||
import './startup'; // Loaded as ES module because of package.json |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extensionless files, as documented above, are different from extensionless specifiers (which you are documenting here). Extensionless files mean the file path itself has no extension e.g. /path/to/file
, not the specifier e.g. './file'
where path is /path/to/file.js
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I see. Yeah it could definitely be clarified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you be ok removing this line and instead clarifying above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. Had trouble writing it succinctly so let me know if it makes sense.
What do you mean by "non-standard flag"? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Took a quick stab at some slightly different text, unsure if it is better. Happy to see this land with the suggested changes ignore or landed.
Co-Authored-By: Myles Borins <myles.borins@gmail.com>
Co-Authored-By: Myles Borins <myles.borins@gmail.com>
Co-Authored-By: Myles Borins <myles.borins@gmail.com>
I don't know if is necessary, but in #30699, CJS module will give suggestions when file extension is not provided, maybe it would be nice in this docs. |
Landed in 3e5967b @juanarbol I think documenting #30699 is a great idea, but should likely happen in that PR (so we don't land the docs before the change is landed) |
Fixes #30655
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes