Inspired by this issue, with these instructions you should be able to get Babel transpiling your JS in Sails JS for the client side.
- Install Grunt Babel
npm install --save grunt-babel - Create a
babel.jsfile undertasks/configand add something like the following:
module.exports = function(grunt) {
grunt.config.set('babel', {
dev: {
files: [{
expand: true,
cwd: 'assets/js/',
src: ['**/*.js', '!dependencies/**/*.js'],
dest: '.tmp/public/js/',
ext: '.js'
}]
}
});
grunt.loadNpmTasks('grunt-babel');
};
It's up to you, but I'm not touching the dependencies folder.
- Since Babel copies the JS over, update the
copy:devtasks'ssrcto excludejs(copy.jsundertasks/config). It should looks something like this:
src: ['**/*.!(coffee|less|js)'],
- Update both
compileAssets.jsandsyncAssets.jsundertasks/configto include the Babel dev task:'babel:dev'
That should do it. Try running sails lift --verbose to see if Babel is running, and then try writing some fancy ES6! If I'm missing something please advise.
In addition now you have to set up presets or it will just copy your js files without any changes