Have you had a look at es6-module-transpiler?
https://github.com/square/es6-module-transpiler it might be a good starting
point for whatever you're trying to accomplish.

Rick


On Tue, Apr 1, 2014 at 2:08 PM, Jacob Gable <jacob.ga...@gmail.com> wrote:

> I was wondering if anyone has any thoughts/approaches on shimming non ES6
> modules.  I've run into two different approaches so far and there doesn't
> seem to be much guidance around the process.
>
> To be clear, all I'm talking about right now is what to do about libraries
> like jQuery or Backbone that are not ES6 modules (yet).  What I've done so
> far is to rely on all my vendor libraries being on the page first and then
> creating a single libraries "shim" file that just exports whatever
> libraries are on the global/window namespace.
>
> ```js
> // File: vendor/libraries.js
>
> var globals = globals || window;
>
> export var $ = globals.jQuery;
> export var _ = globals._;
>  export var underscore = globals._;
> export var Backbone = globals.Backbone;
> ```
>
> Then these are imported from our other modules like so:
>
> ```js
> // File: views/foo.js
>
> import { _, Backbone } from 'vendor/libraries';
>
> export default Backbone.View.extend({ ... });
> ```
>
> In other places like ember-cli and ember-app-kit I've seen a reliance on
> the transpilation process to AMD format that assumes an `import foo from
> 'ember-qunit';` call is going to work when transpiled to `var foo =
> require('ember-qunit');`, but that seems like mixing module implementations.
>
> Finally, my real question is, can I achieve a "shimming" system like
> requirejs (http://requirejs.org/docs/api.html#config-shim) has through
> the creation of a custom Loader?  It seems like the Instantiate method
> could be overridden to potentially achieve something like this?  It would
> evaluate the code, then export the window.jQuery value as the instantiated
> module?  Functionality like this would be ideal for us since we would then
> be able to only include the necessary vendor libraries on the page through
> imports instead of making sure all were on the page already (or making page
> specific vendor script builds).
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to