systemjs 是一个最小系统加载工具,用来创建插件来处理可替代的场景加载过程,包括加载 CSS 场景和图片,主要运行在浏览器和 NodeJS 中。它是 ES6 浏览器加载程序的的扩展,将应用在本地浏览器中。通常创建的插件名称是模块本身,要是没有特意指定用途,则默认插件名是模块的扩展名称。

通常它支持创建的插件种类有:

  • CSS System.import('my/file.css!')

  • Image System.import('some/image.png!image')

  • JSON System.import('some/data.json!').then(function(json){})

  • Markdown System.import('app/some/project/README.md!').then(function(html) {})

  • Text System.import('some/text.txt!text').then(function(text) {})

  • WebFont System.import('google Port Lligat Slab, Droid Sans !font')

示例:

 

System.formats = ['amd', 'cjs', 'myformat', 'global'];
 
  System.format.myformat = {
    detect: function(source, load) {
      if (!source.match(formatRegEx))
        return false;
 
      // return the array of dependencies
      return getDeps(source);
    },
    execute: function(load, depMap, global, execute) {
      // provide any globals
      global.myFormatGlobal = function(dep) {
        return depMap[dep];
      }
 
      // alter the source before execution
      load.source = '(function() {' + load.source + '}();';
 
      // execute source code
      execute();
 
      // clean up any globals
      delete global.myFormatGlobal;
 
      // return the defined module object
      return global.module;
    }
  }