My notebooks often need bundle.run to load npm libs, as officially recommended for stubborn modules. But lately, the service has been failing, causing my notebooks to break.
For the longer term, I wonder if it makes sense for Observable to offer an endpoint to cache and serve modules loaded from bundle.run, since they seem pretty important to keeping our notebooks stable.
Yep, it’s been a bummer that bundle.run isn’t 100% stable. We’re weighing different options, including hosting an instance, re-caching, or just trying to contribute where we see bugfixes. As it stands, there unfortunately is only so much good that immutable caching can do, given that bundle.run often fails to build packages.
It’s been down for 3 days now, probably was down prior to when I noticed, but I was relying on wzrd.in a couple weeks ago. There is some problem in that they are not serving https back properly. Any ideas on who to contact or how to nudge them to get back online properly?
While we’re on the topic—I just now tried a few libraries related to unit conversion that I needed, and all of them required bundle.run to work.
Of course it’s not that simple to have require “just work” for everything, but I’m starting to wonder if require("foo@1.2.3") should or could be made to automatically fall back to something like bundle.run or a reliable cache thereof.
I have been told the recommendation is to download the JS module, ie. https://bundle.run/node-matrices@1.0.0, then attach the file to the notebook, and finally require the attached module, replacing
One workaround that helped me to circumvent cached broken builds was to attach a cachebreaking param to the URL, e.g. https://bundle.run/node-matrices@1.0.0?cb123. I imagine this could be automated to some degree and integrated into a require wrapper.
Yes, it would appear that each hash considers the full query. A static cachebreaker should be fine, but with a dynamic one (like timestamps) you’d likely be spamming bundle.run.