Skip to content
Piotrek Koszuliński edited this page Apr 20, 2018 · 9 revisions


⚠⚠ ⚠⚠ ⚠⚠

This wiki served in the early days of CKEditor 5 development and can be severely outdated.

Refer to the official CKEditor 5 documentation for up-to-date information.






ECMAScript 6+ (2015, 2016...)

With CKEditor 5 we are adhering to the most up-to-date web standards in order to design and develop a powerful and modern application. Because of this, in fact, we opted to support modern browsers, exclusively.

JavaScript is evolving and modern browsers are adopting the newest standards. Currently all browsers support ES5 new features and many ES6 features are supported in all major browsers.

We'll use ES6+ features that are already natively supported in at least Chrome (our development browser choice), are soon to be implemented in other browsers, and can be easily transpiled or polyfilled to work in other browser (in the build version of CKEditor or while testing in other browsers). It means that we can freely use e.g. classes, maps, sets, let/const, symbols and ES6 promises during the development process without the need to transpile these features.

At the same time, we decided to use ES6 modules which are not yet supported by any browser. The CKEditor builder uses Babel to transpile ES6 modules to AMD modules in order to run the code in browser environment. The code can also be transpiled to other module systems, like CommonJS, in order to execute it in different environments.

Thanks to choosing the strategy of transpiling the minimal set of ES6 features we don't need sourcemaps and don't hit many inconveniences which they cause. At the same time, we're able to release totally ES5-compatible product by transpiling all ES6 features.

Clone this wiki locally