Search code examples
javascriptbrowserifybabeljs

babelify transform not transpiling fat arrow


After a fresh install browserify, the following is not working for me:

browserify main.js -o bundle.js -t babelify

The content of main.js is:

var x = () => { return 5 }
console.log(x);

It returns with the fat arrow intact, which causes an error in the browser:

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var x = () => {
  return 5;
};
console.log(x);

},{}]},{},[1]);

What step am I missing?

UPDATE

To add to Felix King's answer, for posterity, the spacing between the brackets ] ] maters: I had tried the same thing before with ]] and it didn't work.


Solution

  • From the babelify README:

    As of Babel 6.0.0 there are no plugins included by default. For babelify to be useful, you must also include some presets and/or plugins.

    [...]

    $ browserify script.js -o bundle.js \
    -t [ babelify --presets [ es2015 react ] ]
    

    Related: Babel file is copied without being transformed