Transpiling ES6 with Babel
We've been using the CommonJS require
syntax for modules; let's change it to use the ES6 module syntax (using import
).
In your code, update the first line to use import
:
const http = require('http'); // CommonJS syntax import http from 'http'; // ES6 syntax
When we try to run our server by executing node index.js
, it will throw a SyntaxError: Unexpected token import
error. This is because Node.js support for modules is still experimental, and not likely to be supported without the --experimental-modules
flag until late 2018.
This means that for us to write our source code using ES6 modules, we need to add an extra step that will transpile the unsupported syntax into supported syntax. There are a few compilers/transpilers available for us to choose from:
- Babel: The most popular and de facto standard for JavaScript compilers/transpilers.
- Traceur: Another compiler by Google.
- The TypeScript compiler: TypeScript is a superset of JavaScript that provides static typing. Since...