2015-03-05 16:20:17 +01:00
2015-02-12 16:24:38 +02:00
2015-02-12 16:24:38 +02:00
2015-02-12 16:24:38 +02:00
2015-02-12 16:24:38 +02:00
2015-03-05 16:20:17 +01:00

SystemJS

Gitter

Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS. Works with both Traceur and 6to5.

Designed as a collection of extensions to the ES6 module loader which can also be applied individually.

Designed to work with the ES6 Module Loader polyfill (9KB) for a combined total footprint of 16KB minified and gzipped.

Runs in IE8+ and NodeJS.

For discussion, see the Google Group.

For a list of guides and tools, see the community project page.

Documentation

Getting Started

Browser Use

Download es6-module-loader.js into the same folder as system.js.

Load SystemJS with a single script tag:

<script src="system.js"></script>

It will load es6-module-loader.js itself.

To load ES6, locate traceur.js in the same folder and it will be loaded when needed.

For use with 6to5 set:

<script>
  System.transpiler = '6to5';
</script>

Alternatively a custom path to 6to5 can also be set:

<script src="system.js" data-6to5-src="path/to/6to5.js"></script>

NodeJS Use

To load modules in NodeJS, install SystemJS with:

  npm install systemjs

We can then load modules equivalently to in the browser:

var System = require('systemjs');

/* 
 * Include
 *   System.transpiler = '6to5';
 * to use 6to5 instead of Traceur
 */

// loads './app.js' from the current directory
System.import('./app').then(function(m) {
  console.log(m);
});

If configuring baseURL for use in Windows, prepend file: i.e.

System.config({
 baseURL: 'file:' + path.resolve('../path')
});

Plugins

Plugins handle alternative loading scenarios, including loading assets such as CSS or images, and providing custom transpilation scenarios.

Supported Plugins:

  • CSS System.import('my/file.css!')
  • Image System.import('some/image.png!image')
  • JSON System.import('some/data.json!').then(function(json){})
  • Text System.import('some/text.txt!text').then(function(text) {})

Additional Plugins:

  • CoffeeScript System.import('./test.coffee!')
  • Jade
  • JSX System.import('template.jsx!')
  • Markdown System.import('app/some/project/README.md!').then(function(html) {})
  • WebFont System.import('google Port Lligat Slab, Droid Sans !font')
  • Ember Handlebars System.import('template.hbs!')

Read the guide here on creating plugins.

Running the tests

To install the dependencies correctly, run bower install from the root of the repo, then open test/test.html in a browser with a local server or file access flags enabled.

License

MIT

Description
Dynamic ES module loader
Readme MIT 18 MiB
Languages
JavaScript 96.4%
HTML 3.6%