/broccoli-dist-es6-module

Author in ES6, distribute everywhere.

Primary LanguageJavaScriptMIT LicenseMIT

broccoli-dist-es6-module

Build Status

demo

Author your library in ES6 modules and distribute in everything under the sun:

  • cjs
  • amd
  • amd, named & concatenated
  • globals, concatenated

Installation

$ npm install broccoli-dist-es6-module

Usage: Sample Brocfile.js

var dist = require('broccoli-dist-es6-module');

module.exports = dist('lib', {

  // the entry script, and module that becomes the global
  main: 'main',

  // will become window.ic.ajax with the exports from `main`
  global: 'ic.ajax',

  // the prefix for named-amd modules
  packageName: 'ic-ajax',

  // global output only: naive shimming, when the id 'ember' is imported,
  // substitute with `window.Ember` instead
  shim: {
    'ember': 'Ember'
  }
});

And then run broccoli:

$ broccoli build dist

Open up dist to see the results.

Options

  • main - the entry script to your package, determines which module exports to your global namespace, also the package that is returned in AMD with require(['your-package-name'])

  • packageName - named-amd, the name of your package require(['your-package-name']);

  • global - globals: the global to attach your main module to

  • shim - globals: map import string ids to objects on window, see usage above or the examples

Notes

  • This uses the compatFix option of the es6-module-transpiler which is not necessarily future proof (but without it we couldn't import jQuery from 'jquery').

  • The shimming is really hacky, but its working.