babel and pm2 for es6 applications
Babel compiles the es6 javascript into es5 and run it. pm2 auto restarts the app server whenever changes are made to the code base. Install them globally from command line.
[code langauge=”shell”]
sudo npm install -g babel
sudo npm install -g pm2
[/code]
Create a sample http server with es6 features, the keyword let and the arrow function. app.js
[code langauge=”javascript”]
let http = require("http");
let fs = require("fs");
let fileToServe = "./readme.txt";
http.createServer((req, res) => {
fs.readFile(fileToServe, (err, data) => {
if(err) console.log("Error reading the file.", err);
res.end(data);
});
}).listen(3000);
console.log("Server running at: " + "localhost:3000");
[/code]
Create a pm2 config file to specify the app will run using babel-node. pm2_config.json
[code langauge=”javascript”]
{
"apps" : [{
"name" : "sample-app",
"script" : "./app.js",
"watch" : true,
"exec_interpreter" : "babel-node",
"exec_mode" : "fork",
}]
}
[/code]
Start the server using pm2 and feeding it with pm2 config file created from the above.
[code language=”shell”]
pm2 start pm2_config.json
[/code]
The keyword let and the arrow function such as (req, res) => {} are new features in es6, if you run it with node, it will error out. You want to keep node with es5 and want to try out the es6 features. Babel comes in handy here. It will compile the es6 code to es5 and then run it. pm2 speeds up the development time by auto restarting the app when changes are made to the code base.
Other essential pm2 commands.
[code language=”shell”]
pm2 start <app_name>
pm2 list
pm2 restart <app_name|id|all>
pm2 delete <app_name|id|all>
[/code]
Search within Codexpedia

Search the entire web
