SystemJS API

For setting SystemJS configuration see the Configuration API page.


Type: Function

For backwards-compatibility with AMD environments, set window.define = System.amdDefine.


Type: Function

For backwards-compatibility with AMD environments, set window.require = System.amdRequire.


Type: Function

SystemJS configuration helper function. See the Configuration API.


Type: Function

This represents the System base class, which can be extended or reinstantiated to create a custom System instance.


  var clonedSystem = new System.constructor();
  clonedSystem.baseURL = System.baseURL;
  clonedSystem.import('x'); // imports in a custom context


Type: Function

Deletes a module from the registry by normalized name.


System.get(moduleName) -> Module

Type: Function

Returns a module from the registry by normalized name.


System.has(moduleName) -> Boolean

Type: Function

Returns whether a given module exists in the registry by normalized module name.

if (System.has('')) {
  // ...

System.import(moduleName [, normalizedParentName]) -> Promise(Module)

Type: Function

Loads a module by name taking an optional normalized parent name argument.

Promise resolves to the module value.

For loading relative to the current module, ES Modules define a __moduleName binding, so that:

System.import('./local', __moduleName);

In CommonJS modules the above would be instead.

This is non-standard, but coverse a use case that will be provided by the spec.

System.newModule(Object) -> Module

Type: Function

Given a plain JavaScript object, return an equivalent Module object.

Useful when writing a custom instantiate hook or using System.set.

System.register([name ,] deps, declare)

Type: Function

Declaration function for defining modules of the System.register polyfill module format.

Read more on the format at the loader polyfill page

System.registerDynamic([name ,] deps, executingRequire, declare)

Type: Function

Companion module format to System.register for non-ES6 modules.

Provides a <script>-injection-compatible module format that any CommonJS or Global module can be converted into for CSP compatibility.

Output created by SystemJS Builder when creating bundles or self-executing bundles.

For example, the following CommonJS module:

module.exports = require('pkg/module');

Can be written:

System.registerDynamic(['pkg/module'], true, function(require, exports, module) {
  module.exports = require('pkg/module');

executingRequire indicates that the dependencies are executed synchronously only when using the require function, and not before execution.

  • require is a standard CommonJS-style require
  • exports the CommonJS exports object, which is assigned to the default export of the module, with its own properties available as named exports.
  • module represents the CommonJS module object, with export, id and url properties set.

System.set(moduleName, Module)

Type: Function

Sets a module into the registry directly and synchronously.

Typically used along with System.newModule to create a valid Module object:

System.set('custom-module', System.newModule({ prop: 'value' }));

Note SystemJS stores all module names in the registry as normalized URLs. To be able to properly use the registry with System.set it is usually necessary to run System.set(System.normalizeSync('custom-module'), System.newModule({ prop: 'value' })); to ensure that System.import behaves correctly.


Type: Function

In CommonJS environments, SystemJS will substitute the global require as needed by the module format being loaded to ensure the correct detection paths in loaded code.

The CommonJS require can be recovered within these modules from System._nodeRequire.