-
Notifications
You must be signed in to change notification settings - Fork 44
Scope of team #17
Comments
i would like to see this group handling everything related to how modules of the esm and cjs variety (and whatever else?) get handled in node, as they are definitely coupled in the ecosystem |
I have a few topics that I would like to stick up for discussion that need to be cross module system:
|
building on from @bmeck, from what i've seen so far, here are the major asks:
|
So I think that the high level take away at this point is that our scope is going to be both ESM + CJS. The group may in turn take responsibility for all of require, the module specifier resolution algorithm, etc. I do have slight concerns about how quickly this could expand and move away from the intent and timely work. Would it perhaps make sense to scope to ESM + interoperability with CJS? |
given that merely accepting a new file extension has set everyone back by god-knows-how-long, i'm inclined to say yes, we should define an extraordinarily limited MVP or the group may never ship. (not saying |
I think you can say that, we're here because nobody liked that.
amen. |
It's the only way forward if we want to even think about shipping in v10. |
I think we should agree to disagree on a variety of things. |
@WebReflection i'd agree, beyond that, being "realistic" i'm guessing it'll still be an uphill battle for an alternative proposal to succeed, if only because " for obvious reasons i consider that a prominent risk to avoid. |
it's demonstrated, and easy to demonstrate, that Pure ESM in browsers is The hooks on web are on loading, like So, ESM + interoperability with CJS seems to be right team scope, and we should define an extraordinarily limited MVP the only way this group of people could make sense. |
@WebReflection we completely disagree on these topics and conclusions. |
there's nothing to disagree, I've presented always facts, never opinions. When you'll point at me at a well established NodeJS project that uses file extensions in CommonJS or transpiled fake ESM then you might have some counter fact to talk about. until that, I use already unpkg.com CDN to deliver pure ESM and being unpkg.com a mirror of npm my modules work already in ESM capable environments (SpiderMonkey, JSC) and are also transpiled to CommonJS for Node. Basically I already experience the goal of this team and I can say it works already. Same goes for everyone else that used |
@WebReflection userland and platform implementations have extremely different requirement. Your statement regarding what can already be accomplished with tooling is proof that a vibrant ecosystem can come up with great solutions Here's a scope I would like to make and challenge everyone to abide to Can we please scope our conversation to explicit proposals rather than philosophy. We continue to get stuck in the weeds of implementation details and focusing on parts of the user experience that we find to not be ergonomic. For example I would not like to ship transparent interop. That being said I think I will have a better chance of influencing the decision of what we ship by suggesting concrete changes (import.meta.require) and suggesting compromises that can work towards my goal. This group was spun up to come up with concrete proposals that find us a path forward. If we kick this off with infighting and endless debate around implementation we will get nowhere. |
FWIW I'm already pro To me that is the best deal that works with pure ESM that already works in browsers and works with CJS modules. Ask me if I'd like that any time you want, my answer will be always yes. |
To strength the feasibility:
NexusJS which is a competitor (big selling point?) already works with everything as expected (and Browsers We miss interoperability with CommonJS. While all the mentioned environments already have a pure ESM module that brings CJS in hose env, NodeJS could pave the road for With only these two as proposal and goals we restrict our scope and we can ship for v10. With anything bigger than 2 or 3 bullet points and 3 months I don't think there's anything we can do for v10 so we can take all the time we want for v12 (undesirable, imo) |
@WebReflection the deadline for v10 is closer to 9 - 27 months. We can remove the flag any time and land as semver-minor. Only semver major changes against core will have that cut off (and it actually is more like 2 months) Can we please keep this issue on track though... focusing on scope, not implementation |
For me, transparent interop is a critical requirement. |
Can we nail down some broad milestones that can be later refined into specific changes? Much of the work that needs to be done requires additional research, exploration, and discovery. This has been relocated to Roadmap (preliminary draft) |
I think loading a CJS module from ESM is something critical for 10.0. |
@evanplaice could you open a separate issue regarding roadmap? I would like to keep this issue scoped to... scope 😊 |
I also think that "It does not include ESM<->CJS interop" is unacceptable for any unflagged implementation. |
@MylesBorins Yes, I'll move the body of the above comment to a separate issue. @ljharb Noted, I removed that from the list. If you have more feedback see roadmap(prelimnary draft) |
going to close this for now. We can revisit this (in a fresh thread) when we have a better idea of the exact work we will be doing |
If we plan to charter, part of the process will be deciding on the scope of the team, and what we will be explicitly asking the TSC to take responsibility for.
While the original scope of this group was ESM, it is very likely that part of (or potentially all) the CJS implementation may be required to be in the scope of this group.
Let's use this thread to brainstorm
The text was updated successfully, but these errors were encountered: