jspm   

Native ES Modules CDN   •   Package Manager


10/05/2018: Now that all stable browsers support ES modules, the latest version of the jspm CDN has been released at jspm.io, fully-utilizing the native module loader. As a result, the previous version of the jspm CDN will be deprecated soon.


Project Status

jspm was first released in 2013 in order to align JavaScript module workflows with the module loader specification of the time, on top of which SystemJS is based. Since then, the loader spefication has been discontinued and broken out into separate module specification processes for JavaScript, the browser and NodeJS.

As a result, the design decisions of jspm need to be rebuilt to align with these current trends.

The first step of this process, updating the jspm CDN to modules has been launched at jspm.io. Work to update the jspm package manager and its associated tooling is taking place through aligning on SystemJS 2.0 and Rollup code splitting workflows.

The overall initiative here towards a jspm 2.0 is very much an uncertain work-in-progress depending on support and interest. Updates will be posted here over the coming months.


Summary


Docs


Articles / Videos


Project Overview

SystemJS

jspm package management is designed around the SystemJS dynamic ES6 loader.

Read more at the SystemJS project page on GitHub

Note that SystemJS is built on top of a draft module loader specification that is subject to change.


jspm CLI

Read the CLI documentation on Github

Registries

jspm is designed to support any number of independent registries.

The following registries are currently supported:

Registry

The jspm registry provides a convenience mapping from shortcut names into full registry names.

This allows for easier installation - jspm install jquery over jspm install github:components/jquery, and provides the default aliasing.

It also indicates packages which are jspm-compatible and makes it clear where the primary package source for jspm is (GitHub or npm).

Browse the registry

Version Management

jspm CLI implements shortest-path fork reduction during installs, while ensuring targets are at their latest patch versions to reduce bugs.

The version solution is created within the project configuration file, and can be checked-in to version control to lock dependencies.

Package Configuration

jspm extends the package.json spec with some new properties to understand how to treat packages.

Configuration options include the main entry point, module format, files and ignore rules, map config and dependencies (when combined with a registry property).

To provide configuration for existing libraries on GitHub or npm without access to the underlying repo, the jspm registry provides a package.json override service.