GithubHelp home page GithubHelp logo

nvdnkpr / systemjs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from systemjs/systemjs

0.0 2.0 0.0 8.12 MB

Universal dynamic module loader

License: MIT License

Makefile 0.70% JavaScript 96.06% HTML 3.22% CoffeeScript 0.01% CSS 0.01% TypeScript 0.01%

systemjs's Introduction

SystemJS

Build Status Gitter Tips

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.

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.

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 these polyfills can be loaded with a script tag before SystemJS 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.js').then(function(m) {
  console.log(m);
});

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

System.import('lodash').then(function (_) {
 console.log(_);
});

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:

Guides:

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 matthewbauer avatar vladima avatar stefanr avatar meomix avatar justinbmeyer avatar fictitious avatar briandipalma avatar simonykq avatar blink1073 avatar majhork avatar majorbreakfast avatar theefer avatar colmbrady avatar crisptrutski avatar sheerun avatar ozsay avatar patrickjs avatar paulirish avatar munter avatar renato-zannon avatar lizardruss avatar shannonmoeller avatar shinnn avatar kasiriveni avatar teohhanhui avatar

Watchers

Navid Nikpour avatar  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.