I use the require hook of BabelJS (formerly named 6to5) to run node apps with es6features:
// run.js
require("babel/register");
require("./app.js6");
I call node run.js
to run my app.js6. I need to install BabelJS and provide a run.js for each project I'd like to use es6features. I would prefer a call like nodejs6 app.js6
. How can I achieve this system independently (Unix and Windows)?
How configure node.js app with es6 support and server reload on file change.
I.Configuration steps ( creating project from the scratch ):
1.Go in terminal to Your project main directory
npm init
//create package.json for project2.Install dependencies
1 - it can be also stage-1 or 2, it depends what features of es We want to use
3.We should have in package.json file something like that ( for sure package version will be different but it is ok ):
4.Create .babelrc file in root project directory ( there is package.json file )
5.Create two directories:
src - here is working directory with files writen in es6
dist - here files will compile to es5 using babel
Your project root directory should look like this:
7.Add to package.json needed commands:
8.Available commands:
npm run watch
//starts watch watch changes in src directory and compiles in to distnpm run build
//compiles files from src directory to distnpm run serve
//it is doing watch + start node server, on every file change it will restart node server using nodemon which is watching dist directory changes9.Final notes
10.Run server and start creating app in src directory.
II. Easier way ( ready to use boilerplate )
If it is too many points for You then full woking boilerplate is available on github - https://github.com/maciejsikora/node-express-babel-boilerplate.
node -r babel-register scripts.js
This is the best solution
npx babel-node scripts.js
!Babel node doesn't work well in case of exit process and
kexec
package also doesn't help in this case (as I tried)In both cases you need to use
.babelrc
which should describe presets and plugins for your app.npx
is using only for execution of libraries which are not installed withnpm
oryarn
. Otherwise you need tonpm i -g babel-cli
and thenbabel-node script.js