npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

steal-systemjs

v0.19.4

Published

System loader extension for flexible AMD & CommonJS support

Downloads

4,646

Readme

SystemJS

Gitter

For upgrading to SystemJS 0.16, see the ES6 Module Loader 0.16 release upgrade notes for more information, or read the updated Getting Started guide below.

Universal dynamic module loader - loads ES6 modules, AMD, CommonJS and global scripts in the browser and NodeJS. Works with both Traceur and Babel.

Designed to work with the ES6 Module Loader polyfill (9KB) for a combined total footprint of 16KB minified and gzipped.

Runs in IE8+ and NodeJS.

For discussion, see the Google Group.

For a list of guides and tools, see the community project page.

Documentation

Getting Started

Browser Use

Download es6-module-loader.js into the same folder as system.js.

Load SystemJS with a single script tag:

<script src="system.js"></script>

It will then load es6-module-loader.js itself.

To load ES6, locate traceur.js in the baseURL path and it will be loaded when needed.

For use with Babel, locate the browser.js file at babel.js in the baseURL and set:

<script>
  System.transpiler = 'babel';
</script>

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

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

NodeJS Use

To load modules in NodeJS, install SystemJS with:

  npm install systemjs traceur

(making sure to also install Traceur or Babel as needed, as they are not included as dependencies as of SystemJS 0.16)

We can then load modules equivalently to in the browser:

var System = require('systemjs');

/* 
 * Include
 *   System.transpiler = 'babel';
 * to use Babel instead of Traceur
 */

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

If configuring the baseURL for use in Windows, prepend file: i.e.

System.config({
 baseURL: 'file:' + path.resolve('../path')
});

Plugins

Plugins handle alternative loading scenarios, including loading assets such as CSS or images, and providing custom transpilation scenarios.

Supported Plugins:

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

Plugins are loaded from the module name of the extension. To set them up, you'll most likely want to add map configuration. For example:

System.map['css'] = 'path/to/css/plugin';

Loading through plugin is indicated with ! at the end of the name:

System.import('file.css!');      // will use the "css" plugin, assumed from the extension
System.import('file.css!text');  // will use the "text" plugin, instead of checking the extension

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