bigskysoftware / bigskysoftware/_hyperscript
ES Modules
- Dominant language
- JavaScript
- Stars
- 3.8k
- Forks
- 172
- PR merge metrics
- No merged PRs in 30d
Description
_Feel free to convert this into a Github Discussion._
Hello, you may be stumbling upon this thinking "why isn't the ES Module the main form of distribution for hyperscript?"
I want to have a public thread of the pitfalls for this as it will likely become re-occurring as other libraries experiment with this while hyperscript grows in popularity.
ES Modules are not a drop-in replacement for classic modules, and bring their own barriers to entry:
1. ES Modules require a server environment setup because of [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS).
1. Right now, hyperscript **just works** -- You can run plain `.html` files directly off your local disk. No server setup requirement. This is a competitive advantage and makes us an easy recommendation to newcomers of web development.
2. Playing with real hyperscript is IMHO the quickest way to make a new user. Getting to that point needs to be friction free: the language is already different enough! Someone from reddit or the orange site can download a mindblowing example like `hyperwordle.html` and tweak it straight away.
3. It will be bad for growth of the language for users to get hung up on advanced topics like CORS-- We want them to see how awesome hyperscript is without putting immediate stumbling blocks in the way.
3. ES Modules will break all sites currently using hyperscript: `` 👀 (modern browsers fail with an error unless you add `type="module"`)
1. It's worth noting this gotcha and `import` are extra knowledge not always known to newcomers outside of Node or Deno in general...
Personally I think it'd be smart to rename `*.modern.js` to `*.module.js` or `*.mjs` (or another standard), because its current form is misleading- and will lead to many fun "lets go to es modules" tickets in the future.
I love that Node / Deno got ES Modules in the browser (and its great when working in those stacks), but they are not a drop in replacement as implemented in the standard as of 2022.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.