Integrating the Webs' dependency systems
johnjbarton at google.com
Tue May 27 15:40:53 PDT 2014
On Tue, May 27, 2014 at 3:04 PM, Ian Hickson <ian at hixie.ch> wrote:
> On Tue, 27 May 2014, John Barton wrote:
> > On Fri, May 23, 2014 at 5:04 PM, Ian Hickson <ian at hixie.ch> wrote
> > > and how would we hook all the specs together to use it?
> > Define a "System" object for ES6 that implements the ES6 Loader API and
> > extends it to dynamically load CSS and HTML.
> Can you elaborate on this? I don't really follow.
TC39, the ES6 folks, have a partial spec for module loading. They have
defined the language elements of a module system and part of the runtime
system, a class called Loader. The instance of Loader used to actually load
modules is not defined except that it is given a name, System. Loading
configuration and customization will happen through the instance. (I
believe the Loader is written up in the ES6 document but not official on
the ES6 roadmap, whatever that means).
I believe the logic here is that each platform must define
normalize/locate/fetch/translate, so the standard specification should also
be done at the platform layer.
I think the Loader nicely isolates these particular functions: I don't see
any urgency in standardizing them. However the delegation of the
specification of System leaves us in the weird place of having everything
except the actually external API spec-ed. Web folks could almost just say
"Browsers shall have a window.System instance of Loader". There is a
missing part of the Loader spec essential for Web and not very important
for node: bundling for network transmission see
But to your original question about non-JS loading: you can extend the
Loader class to add methods for CSS and HTML. These would be a cache in
front of xhr for the most part, hence my suggestion that implementation
(GitHub) is a good place to start. The next step, and one quite critical
to practice, is integration with bundling. Here practical expertise is
essential so again implementation would be a critical guide. There exist
solutions in the pre-ES6 space to consult as well.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss