Giter Site home page Giter Site logo

hlissnake / systemjs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from systemjs/systemjs

0.0 2.0 0.0 3.73 MB

Universal dynamic module loader

License: MIT License

Makefile 0.76% JavaScript 96.18% HTML 3.02% CoffeeScript 0.01% CSS 0.01% Handlebars 0.01% TypeScript 0.01%

systemjs's Introduction

SystemJS

Build Status Gitter

For upgrading to SystemJS 0.17 / 0.18, 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.

Built on top of the ES6 Module Loader polyfill.

~12KB 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.

Documentation

Basic Use

Browser

<script src="system.js"></script>
<script>
  // set our baseURL reference path
  System.config({
    baseURL: '/app'
  });

  // loads /app/main.js
  System.import('main.js');
</script>

To load ES6, locate a transpiler (traceur.js, 'browser.js' from Babel, or 'typescript.js' from TypeScript) in the baseURL path, then set the transpiler:

<script>
  System.config({
    // or 'traceur' or 'typescript'
    transpiler: 'babel'
    // or traceurOptions or typescriptOptions
    babelOptions: {

    }
  });
</script>

Alternatively a custom path to Babel or Traceur can also be set through paths:

System.config({
  map: {
    traceur: 'path/to/traceur.js'
  }
});

Polyfills

SystemJS relies on Promise and URL being present in the environment. When these are not available it will send a request out to the system-polyfills.js file located in the dist folder which will polyfill window.Promise and window.URLPolyfill.

This is typically necessary in IE, so ensure to keep this file in the same folder as SystemJS.

Alternatively the polyfills can be loaded manually or via other polyfill implementations as well.

NodeJS

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');

System.transpiler = 'traceur';

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

If using TypeScript, set global.ts = require('typescript') before importing to ensure it is loaded correctly.

Plugins

Supported loader plugins:

  • CSS System.import('my/file.css')
  • Image System.import('some/image.png!image')
  • JSON System.import('some/data.json')
  • Text System.import('some/text.txt!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')
  • Handlebars System.import('template.hbs!')
  • Ember Handlebars System.import('template.hbs!')
  • raw System.import('file.bin!raw').then(function(data) {})
  • jst Underscore templates

Read about using plugins here 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

systemjs's People

Contributors

guybedford avatar peteruithoven avatar josh avatar matthewp avatar probins avatar justinbmeyer avatar stefanr avatar vladima avatar briandipalma avatar simonykq avatar majhork avatar majorbreakfast avatar matthewbauer avatar theefer avatar crisptrutski avatar marcfallows avatar johnjbarton avatar jczerwinski avatar tristanlins avatar gitter-badger avatar shinnn avatar shannonmoeller avatar lizardruss avatar renato-zannon avatar patrickjs avatar oliverjash avatar orkon avatar matoilic avatar maks3w avatar sanjosolutions avatar

Watchers

James Cloos avatar 0xDragonLong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.