New releases of ECMAScript have been published since the first standardisation, resulting in new versions of the specification.
Its versions are known as its abbreviation (ES) and the number of the version (ES1, ES2, ES3, ES4, ES5), although the most recent ones have exchanged the version number for the year of publishing (ES2015, ES2016, ES2017, ES2018)
To be consistent, it is advisable to use the features of a chosen version throughout the project. The features for the different versions can be found in the ECMA official website and there are also multiple blogs that explain them in practice.
The Back-end Ecosystem
As I explained in the previous section, JS engines are used to interpret the language and there is one for every browser. V8 is the JS engine from Chrome and since it is open source it has been used to create Node.js.
NodeJS and NPM
Other package managers can be used such as Facebook’s Yarn.
When developing, it is good practice the use of modules to structure the code and separate concerns in the web application. Modules files need to be merged into one single file in other to all of them be included in the application.
Webpack is a web module bundler that does the task mentioned above and it also bundles other assets like images and CSS. And it also watches those files for changes and it reloads the files that have been subject to any change.
The most popular transpiler is Babel as it is customisable and allows to compile between several ECMAscript versions.