Skip to content
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

Consider using bundler from ellx-app #125

Open
wlach opened this issue Jul 25, 2021 · 1 comment
Open

Consider using bundler from ellx-app #125

wlach opened this issue Jul 25, 2021 · 1 comment

Comments

@wlach
Copy link
Collaborator

wlach commented Jul 25, 2021

Irydium's bundler (what turns a set of svelte components + javascript into a web page) is based off of the REPLicant repository (as well as the presentation given at Svelte summit 2020) with only some minor modifications. REPLicant an impressive piece of demoware, but its intention was always didactic: it was never meant to actually be used in production. Notably, the Irydium bundler lacks:

  • Comprehensive support for importing the universe of packages from npm (many things don't work)
  • Ability to cancel an in-progress bundling
  • Source maps
  • Any kind of caching
  • HOT-module reloading
  • ... probably other things I'm forgetting...

There's lots of great innovation in the "bundling" space (snowpack, vite, esbuild, ...) in general but AFAIK there's nothing well-established that allows bundling to happen in the client as a first class citizen (e.g. they assume you have a full-blown node setup on your workstation). The one exception seems to be the ellx bundler by @dmaevsky and @matyunya, which was recently open sourced:

https://github.com/dmaevsky/ellx-app/tree/master/src/bundler

It already supports at least the first and second items on the list above and it looks like there's probably a path to supporting the rest. We should consider using it in Irydium, one way or another.

@dmaevsky
Copy link

@wlach I finally found some time to extract the tokamak bundler from @ellx/app and make it clean and independent from Ellx platform itself. Please check out https://github.com/dmaevsky/tokamak.
It definitely lacks some docs, but you can check the updated code of https://github.com/dmaevsky/ellx-app/blob/master/src/bundler/builder.js and https://github.com/dmaevsky/ellx-app/blob/master/src/sandbox/runtime/tokamak_dynamic.js which now depend on tokamak and tokamak/dynamic resp. for some usage examples.
For now I completely removed the part that would be the most interesting for you though :) - the JSDelivr loader.
I mean, the old code is still there, but it is not connected anymore. Let's discuss when you have a moment: I'll show you what needs to be improved there and how to connect it to the current tokamak.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants