René's URL Explorer Experiment


Title: Divergent specifier hazard · Issue #371 · nodejs/modules · GitHub

Open Graph Title: Divergent specifier hazard · Issue #371 · nodejs/modules

X Title: Divergent specifier hazard · Issue #371 · nodejs/modules

Description: @jkrems and I created a repo to demonstrate the hazard mentioned by @MylesBorins in #273 (comment) and #273 (comment) where a single specifier resolves to separate things in ESM and CommonJS environments within the same runtime. This haz...

Open Graph Description: @jkrems and I created a repo to demonstrate the hazard mentioned by @MylesBorins in #273 (comment) and #273 (comment) where a single specifier resolves to separate things in ESM and CommonJS enviro...

X Description: @jkrems and I created a repo to demonstrate the hazard mentioned by @MylesBorins in #273 (comment) and #273 (comment) where a single specifier resolves to separate things in ESM and CommonJS enviro...

Opengraph URL: https://github.com/nodejs/modules/issues/371

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Divergent specifier hazard","articleBody":"@jkrems and I created a [repo](https://github.com/jkrems/singleton-issue) to demonstrate the hazard mentioned by @MylesBorins in https://github.com/nodejs/modules/issues/273#issuecomment-492355098 and https://github.com/nodejs/modules/issues/273#issuecomment-492408041 where a single specifier resolves to separate things in ESM and CommonJS environments within the same runtime. This hazard is currently blocking dual packages, and logically would also block `--es-module-specifier-resolution=node` from becoming the default behavior.\r\n\r\nHopefully the repo illustrates the issue clearly enough that everyone can get a solid grasp on it. It seems to me that we have three options:\r\n\r\n1. Accept that the hazard is a serious concern and that it therefore rules out supporting dual packages and automatic extension resolution. The current modules implementation is what ships with regard to those two features, and presumably we would remove the `--es-module-specifier-resolution` flag (since arguably the flag’s existence invites users to stumble into the hazard).\r\n\r\n1. Acknowledge the hazard but decide that user education can overcome it. @MylesBorins and others concerned about the hazard would need to be persuaded as to why it isn’t a blocker, especially considering that it’s [already come up in the real world](https://github.com/graphql/graphql-js/issues/1479#issuecomment-416718578). If the persuasion effort succeeds, we would then need to decide how far to lean into enabling features that invite the hazard (such as automatic extension resolution and dual packages).\r\n\r\n1. Find a technical solution to prevent the hazard, such as making `require` of ESM work in a way that everyone is comfortable with (cc @weswigham). As with the previous option, we would then need to decide whether or not to support dual packages and/or automatic extension resolution.\r\n\r\nDeciding on any of these options would lead to a resolution of the dual packages item in [Phase 3 of our roadmap](https://github.com/nodejs/modules/blob/master/doc/plan-for-new-modules-implementation.md#in-progress).","author":{"url":"https://github.com/GeoffreyBooth","@type":"Person","name":"GeoffreyBooth"},"datePublished":"2019-08-14T06:32:43.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":64},"url":"https://github.com/371/modules/issues/371"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:a663e3bb-ce7d-0926-268e-d7d21e7d83a1
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idBEA4:38840C:E3438C:134E70D:6A4D5E7D
html-safe-noncead70e2d8ac28167faff7a0db6f19624efc656b2d76e3abe42af80d130401b151
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRUE0OjM4ODQwQzpFMzQzOEM6MTM0RTcwRDo2QTRENUU3RCIsInZpc2l0b3JfaWQiOiI4MzMxNjI4MzE5OTM0ODY1MDIxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac10722c4a90468799215e47dad9d6e86a9082ca43636aafce6e4ece879d73619e
hovercard-subject-tagissue:480504681
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/modules/371/issue_layout
twitter:imagehttps://opengraph.githubassets.com/4887cb18acd1c046f6077efc3cfc216c87ba81d399bf6e4a3afd529c65ce5e18/nodejs/modules/issues/371
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/4887cb18acd1c046f6077efc3cfc216c87ba81d399bf6e4a3afd529c65ce5e18/nodejs/modules/issues/371
og:image:alt@jkrems and I created a repo to demonstrate the hazard mentioned by @MylesBorins in #273 (comment) and #273 (comment) where a single specifier resolves to separate things in ESM and CommonJS enviro...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameGeoffreyBooth
hostnamegithub.com
expected-hostnamegithub.com
None2a1443ff9733a3016431263ea73c93d8fe00c195eb4a7670ac30e7848f045441
turbo-cache-controlno-preview
go-importgithub.com/nodejs/modules git https://github.com/nodejs/modules.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id119901830
octolytics-dimension-repository_nwonodejs/modules
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id119901830
octolytics-dimension-repository_network_root_nwonodejs/modules
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasef3bdd3157ea1f0fd738d408eceeead721acf1dc3
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/nodejs/modules/issues/371#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fmodules%2Fissues%2F371
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fmodules%2Fissues%2F371
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=nodejs%2Fmodules
Reloadhttps://github.com/nodejs/modules/issues/371
Reloadhttps://github.com/nodejs/modules/issues/371
Reloadhttps://github.com/nodejs/modules/issues/371
Please reload this pagehttps://github.com/nodejs/modules/issues/371
nodejs https://github.com/nodejs
moduleshttps://github.com/nodejs/modules
Notifications https://github.com/login?return_to=%2Fnodejs%2Fmodules
Fork 43 https://github.com/login?return_to=%2Fnodejs%2Fmodules
Star 411 https://github.com/login?return_to=%2Fnodejs%2Fmodules
Code https://github.com/nodejs/modules
Issues 26 https://github.com/nodejs/modules/issues
Pull requests 0 https://github.com/nodejs/modules/pulls
Actions https://github.com/nodejs/modules/actions
Projects https://github.com/nodejs/modules/projects
Security and quality 0 https://github.com/nodejs/modules/security
Insights https://github.com/nodejs/modules/pulse
Code https://github.com/nodejs/modules
Issues https://github.com/nodejs/modules/issues
Pull requests https://github.com/nodejs/modules/pulls
Actions https://github.com/nodejs/modules/actions
Projects https://github.com/nodejs/modules/projects
Security and quality https://github.com/nodejs/modules/security
Insights https://github.com/nodejs/modules/pulse
Divergent specifier hazardhttps://github.com/nodejs/modules/issues/371#top
cjshttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22cjs%22
discussionhttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22discussion%22
esmhttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22esm%22
modules-agendaTo be discussed in a meetinghttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22modules-agenda%22
no/go?one-off "not pro forma" actionshttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22no%2Fgo%3F%22
roadmaphttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22roadmap%22
https://github.com/GeoffreyBooth
GeoffreyBoothhttps://github.com/GeoffreyBooth
on Aug 14, 2019https://github.com/nodejs/modules/issues/371#issue-480504681
repohttps://github.com/jkrems/singleton-issue
@MylesBorinshttps://github.com/MylesBorins
#273 (comment)https://github.com/nodejs/modules/issues/273#issuecomment-492355098
#273 (comment)https://github.com/nodejs/modules/issues/273#issuecomment-492408041
@MylesBorinshttps://github.com/MylesBorins
already come up in the real worldhttps://github.com/graphql/graphql-js/issues/1479#issuecomment-416718578
@weswighamhttps://github.com/weswigham
Phase 3 of our roadmaphttps://github.com/nodejs/modules/blob/master/doc/plan-for-new-modules-implementation.md#in-progress
cjshttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22cjs%22
discussionhttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22discussion%22
esmhttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22esm%22
modules-agendaTo be discussed in a meetinghttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22modules-agenda%22
no/go?one-off "not pro forma" actionshttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22no%2Fgo%3F%22
roadmaphttps://github.com/nodejs/modules/issues?q=state%3Aopen%20label%3A%22roadmap%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.