008 Guy Bedford - jspm & SystemJS - Unity and simplicity in loading CommonJS, AMD, and ES6 JS packages
Update: 2014-07-02
Description
JavaScript module loading has traditionally been difficult due to diverse module formats and difficult configuration. With so many competing standards it is hard to get everything to work well together.
Guy has come forward with a solution which simplifies loading and management of JS packages. This is a full workflow solution including both dynamic loading and capability to build bundles for production.
Episode Info
- Episode: CW 008
- Published: July 2nd, 2014
- Tags: nodejs, js,es6,commonjs,amd,es6,packages,modules,jsconf
- Duration: 22:12
Episode Notes
- 03:00 - es6-module-loader
- 04:25 - CommonJS, AMD, ES6 modules. Browserify
- 05:10 - SystemJS - loads ES6 modules, AMD, CommonJS and global scripts. Designed in spec itself, IE8+, suitable for production, runs in browser and Node.js, promises API
- 08:00 - SystemJS workflow - dynamic loading and build capability
- 10:00 - Using SystemJS with build tools
- 10:30 - SystemJS community
- 11:30 - Auto file type detection (CJS, AMD, UMD, …) or can specify
- 12:45 - Optional configuration. Made to be as easy as possible to get going
- 14:30 - jspm - JavaScript Package Manager - CDN for SystemJS, require by name.
- 15:30 - Core ideas - making requiring really simple and making package management really simple
- 16:00 - Design of loader and manager
- 17:28 - Ready for review and full workflow. An invitation to the community
- 18:26 - GitHub locations for projects, examples
- 20:34 - How to follow up, closing remarks
Simple example of SystemJS in browser
<script src="system.js"></script>
<script>
System.import('app/app')
.catch(function(e) {
// we add this since promises suppress all errors
setTimeout(function() {
throw e;
});
});
</script>
Links
- es6-module-loader - ES6 module loader polyfill
- SystemJS - Spec-compliant universal module loader - loads ES6 modules, AMD, CommonJS and global scripts.
- SystemJS-Build-Tool - Build tool for SystemJS which can bundle for production
- jspm - Package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader. Load any module format (ES6, AMD, CommonJS and globals) directly from endpoints such as npm and github with flat versioned dependency management. For production, use the jspm CLI tool to download packages locally, lock down versions and build into a bundle. In development, load modules directly from CDN for frictionless experimentation, switching into production on the same code with a single configuration change. Supports SPDY with server push.
- jspm-es6-demo - jspm ES6 module loading workflow demo - write ES6 modules, load external from CDN, install locally using CDN versions, bundle into single file for production
- jspm Google Group - Discussion forum for JSPM
- Guy Bedford’s Twitter
- Guy Bedford’s GitHub repositories
- Jeff Barczewski, Founder, CodeWinds twitter
- CodeWinds twitter
Videos
- Fluent Conf 2014 - Guy Bedford on ES6 modules, jspm, SystemJS
- Mountain West JS 2014 - Guy Bedford on the genesis of jspm, SystemJS
- JSConf 2014 videos - Videos from the JSConf 2014 sessions (videos are in progress of being posted)
Other podcasts
Comments
Top Podcasts
The Best New Comedy Podcast Right Now – June 2024The Best News Podcast Right Now – June 2024The Best New Business Podcast Right Now – June 2024The Best New Sports Podcast Right Now – June 2024The Best New True Crime Podcast Right Now – June 2024The Best New Joe Rogan Experience Podcast Right Now – June 20The Best New Dan Bongino Show Podcast Right Now – June 20The Best New Mark Levin Podcast – June 2024
In Channel