Babel och Babel-node

Babel är en transpiler som kan transpilera kod från till exempel ES6 till ES5.

Vi ska använda en variant av Babel som heter babel-node. Det är en wrapper som dels transpilerar från ECMA6 och dels kör den transpilerade koden i Node.js. Vi behöver alltså bara ett kommando för att köra ett skript i ES6.

Du kan läsa mer om babel-cli (babel-node) på deras dokumentationssida.

#Förutsättning

Du har installerat node och npm.

#Installera babel-node

Du installerar babel-cli som innehåller babel-node, med npm på följande sätt. Vi väljer att göra en global installation för att hålla det enkelt.

npm install -g babel-cli

Du kan nu köra babel-node. Du kan behöva sudo på Linux och Mac OS.

npm install -g babel-cli
which babel-node
babel-node --version

Så här kan det se ut.

Nu är babel-node installerat. Du kan använda det på samma sätt som node, men med den transpilerande fördelen.

#Installera babel preset

Babel har ett antal presets där es2015 (ES6) är en av dem. Dessa presets bestämmer hur koden transpileras och vilka konstruktioner som stöds.

#Installera preset es2015

Man behöver installera de presets man använder.

Låt oss ta ett exempel tillsammans med kursen linux (eller dbjs). Där använder vi es2015.

Dels finns i kursrepot en konfigurationsfil .babelrc som säger vilka presets vi använder.

{
    "presets": ["es2015"]
}

Vi behöver installera en babel-modul som stödjer den preseten vi vill använda.

Det gör vi i rooten av kursrepot, i samma katalog där .babelrc ligger.

# Gå till roten av kursrepot
npm install babel-preset-es2015

Bra, nu kan vi köra babel-node i alla underkataloger till kursrepot och dra nytta av konfigfilen och dess preset.

#Testa preset 2015

Pröva att gå till kursrepot och in till exempelprogrammet example/nodejs/simpleServer och starta den med babel-node. Om det går bra så har du en korrekt miljö.

Så här kan det se ut när du kör exempelprogrammet.

Du startar alltså servern med följande kommando.

babel-node index.js

För att skicka en request till servern så gör du en vanlig access till den, precis som en webbsida. Antingen med din webbläsare eller via kommandoraden (i en nytt terminalfönster).

curl http://localhost:1337/hej

#Avslutningsvis

Ställ gärna frågor om Babel, babel-node och preset i forumet.