Skip to content

Releases: systemjs/systemjs

SystemJS 0.18.5

03 Aug 16:18
Compare
Choose a tag to compare

Features

  • globals config is now supported for CommonJS (#591)
  • More flexibility for plugins that set load.metadata.sourceMap to have their source maps easily work via more lenient sanitizing (#598).
  • Module objects now have module.toString == "Module" to match spec (#646)
  • Duplicate entries now supported in System.register for TypeScript support (b6c7f5e)

Bug Fixes

  • Package map internal normalization fix (e3eb0b3)
  • Script loading race condition fix (#614)
  • Fixes custom file extension issue for bundles using System.register (#602)
  • Packages extensions handling fix (bb5430a)
  • Fixes IE8 support (#603)
  • mozAnimationStartTime added to global ignores to avoid global detection during changes (#589)
  • System.register and meta comment regular expression fix (#629, cff3701)

SystemJS 0.18.3

24 Jun 14:22
Compare
Choose a tag to compare
  • Fixes URL polyfill correction (#548)
  • Prevent calling of setters when determining the ES6 module for legacy module formats (75842b3)

SystemJS 0.18.2

22 Jun 22:18
Compare
Choose a tag to compare

Bug Fixes

  • RequireJS toUrl to skip js extension adding (da93c0c)
  • Plugin normalization bug fix for non-js extensions (974e6e0)
  • Fix URL support detection in Safari (acfa430)
  • Enable package normalization lookups without main adding via trailing / (e30ab5f)
  • Use eval inside Chrome extensions over script injection (#531)

SystemJS 0.18.1

16 Jun 16:12
Compare
Choose a tag to compare

Minor configuration bug fix to ensure that paths take preference in config ordering (26853a2)

SystemJS 0.18.0

16 Jun 14:39
Compare
Choose a tag to compare

This is a minor but breaking correction to the 0.17 release. For upgrading from SystemJS 0.16.0, the 0.17 release notes provide the breaking changes upgrade guide.

Minor Breaking Changes

Features

  • require.toUrl AMD support (#504)
  • load.metadata.sourceMap support for plugin source map builds (#497)
  • Configuration order no longer matters, and baseURL can only be set before other config (#514, 39ff8d0)
  • Plugin modules and arguments run through full normalization pipeline (#483)

Bug Fixes

  • __useDefault is no longer exported via export * (#487)
  • Backwards compatibility fix for global deps meta syntax (#494)
  • Fixes system-polyfills.js detection of URL in IE & IE Edge (#495, ModuleLoader/es-module-loader#398)
  • Boolean conditional module name fix (#503)

SystemJS 0.17.1

04 Jun 15:36
Compare
Choose a tag to compare

Fix transpiler loader scoping issue (f8e84c8)

SystemJS 0.17.0

04 Jun 14:42
Compare
Choose a tag to compare

This is a big release of SystemJS that has been a long time coming as part of a two-phase transition into the new loader specification. The goal was to include as much of the new behaviors as possible, along with the new SystemJS API upgrades while maintaining maximum backwards-compatibility.

Most previous code should continue to work fine, provided you set System.defaultJSExtensions: true and use System.config({...}) for configuration over setting instance methods directly. Then new best-practices and configurations are available now to start using the new API concepts.

When we finally transition to the new loader spec, most of the APIs should then work with only simple renaming left to do where API names change.

The documentation and getting started guide has also been fully updated to the new APIs.

See also the Module Loader 0.17 release notes at https://github.com/ModuleLoader/es6-module-loader/releases/tag/v0.17.0.

Features

  • New builds which no longer require es6-module-loader.js, but including just the necessary parts from it. This reduces the total size of SystemJS from 16KB to 12KB and 9.5KB for the production-only CSP build.
  • A separate polyfills build for URL and Promise is now included in system-polyfills.js file, which is loaded only when needed (mainly IE) just like we used to do for es6-module-loader.js.
  • TypeScript transpiler support
  • URLs are now fully supported as module names
  • Named exports are now provided for CommonJS modules (#334)
  • New global shim layer allowing globals dependent on modules
  • Plugins can now be set via configuration, with a Webpack-style loader meta
  • New packages configuration to replace contextual map
  • Meta configuration can now be set with wildcards, and will be additive
  • SystemJS will now automatically load with a script tag for maximum CSP-compatibility when loading AMD, System.register or globals without custom shim options set.

Breaking Changes

  • Setting ".js" extensions via paths rules like paths['*'] = '*.js' is no longer supported.
  • URLs are now first-class module names. All names are normalized into URLs into the registry as part of the normalization process, and the locate hook has been deprecated. Read whatwg/loader#52 for more information about this.
  • .js extensions should not be added automatically. This is now included by default, with a backwards-compatibility mode which can be enabled via System.defaultJSExtensions = true;.
  • When configuring SystemJS, it is now necessary to always use System.config({}) as configuration options need to be normalized properly into URLs. The benefit of this is meta syntax is much easier to set as it now permits any valid specifier eg System.config({ meta: { './local/module.js': {...} } })
  • init function has been deprecated for global shims.
  • Global shim layer dependency global reconstruction is deprecated for the new globals config option.
  • System.clone is now deprecated in favour of basic class inheritance (eg class CustomLoader extends System.constructor)
  • It is no longer possible to provide map configuration which maps into plugins (map: { jquery: 'some!plugin' })
  • __moduleAddress is no longer available in ES6 modules, as __moduleName is now the URL reference

Authors who have created custom extension work on top of SystemJS will have more breaking changes, please feel free to post an issue if you have any questions at all.

Deprecations for 0.19

The following deprecations are changes that are going to be deprecated in the 0.19 major release of SystemJS
but will continue to work for now.

It is advisable to upgrade code to use the newer conventions described.

  • Contextual map configuration has been deprecated for package map configuration. Map config therefore should now only map strings to strings. Read about package configuration here.
  • The "es6" module format is now referenced as "esm" meaning ES6 Module. The point being that it refers to the module format itself and not the language or language version.
  • The dependency meta syntax "deps jquery" has been deprecated for an array syntax "deps[] jquery" to indicate that the metadata value being populated is an array.
  • There have been two variations of System.register - one with 3 arguments for ES6 modules and another with 4 arguments for CommonJS and globals to be converted into by SystemJS Builder. This 4-argument form is renamed to System.registerDynamic. SystemJS builder will handle this upgrade path naturally, so there isn't too much to worry about here.

SystemJS 0.16.11

04 May 07:25
Compare
Choose a tag to compare
  • location.origin IE compatibility (8b841dc)
  • CommonJS detection fix (#437)

SystemJS 0.16.10

28 Apr 20:35
Compare
Choose a tag to compare
  • Remove invalid Chrome extension support (08b227a)
  • Revert previous dependency execution change to ensure CJS circular references behave correctly (a69f383)

SystemJS 0.16.9

25 Apr 19:29
Compare
Choose a tag to compare
  • Ensure global require is AMD require during AMD module execution (f80b43c)
  • Simplify global snapshotting (9d477f9)
  • Experimental chrome extension sandbox evaluation (29cd262)