Universal dynamic module loader
For upgrading to SystemJS 0.17-0.19, see the SystemJS 0.17 release upgrade notes for more information, or read the updated SystemJS Overview guide.
Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS. Works with both Traceur and Babel.
System.registerbundle format for production, maintaining circular references support.
Built on top of the ES6 Module Loader polyfill.
~15KB minified and gzipped, runs in IE8+ and NodeJS.
For discussion, see the Google Group.
For a list of guides and tools, see the Third-Party Resources Wiki.
Alternatively a custom path to Babel or Traceur can also be set through paths:
SystemJS relies on
Promise being present in the environment.
Otherwise, when Promise is not available, SystemJS will attempt to load the
system-polyfills.js file located in the dist folder which contains the when.js Promise polyfill.
To load modules in NodeJS, install SystemJS with:
npm install systemjs
If transpiling ES6, also install the transpiler:
npm install traceur babel typescript
We can then load modules equivalently to in the browser:
var System = require'systemjs';Systemtranspiler = 'traceur';// loads './app.js' from the current directorySystemimport'./app.js'thenconsole.logm;;
If using TypeScript, set
global.ts = require('typescript') before importing to ensure it is loaded correctly.
If you are using jspm as a package manager you will also need to load the generated
config.js. The best way to do this in node is to get your
System instance through jspm, which will automatically load your config correctly for you:
var System = require'jspm'Loader;Systemimport'lodash'thenconsole.log_;;
Supported loader plugins:
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.