Include this polyfill snippet above your code, so you can transpile it on the fly online. But for production you should use babel-polyfill

// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === 0 || !isFinite(number)) { return number; }
      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
    };
    var maxSafeInteger = Math.pow(2, 53) - 1;
    var toLength = function (value) {
      var len = toInteger(value);
      return Math.min(Math.max(len, 0), maxSafeInteger);
    };

    // The length property of the from method is 1.
    return function from(arrayLike/*, mapFn, thisArg */) {
      // 1. Let C be the this value.
      var C = this;

      // 2. Let items be ToObject(arrayLike).
      var items = Object(arrayLike);

      // 3. ReturnIfAbrupt(items).
      if (arrayLike == null) {
        throw new TypeError("Array.from requires an array-like object - not null or undefined");
      }

      // 4. If mapfn is undefined, then let mapping be false.
      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
      var T;
      if (typeof mapFn !== 'undefined') {
        // 5. else      
        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
        if (!isCallable(mapFn)) {
          throw new TypeError('Array.from: when provided, the second argument must be a function');
        }

        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
        if (arguments.length > 2) {
          T = arguments[2];
        }
      }

      // 10. Let lenValue be Get(items, "length").
      // 11. Let len be ToLength(lenValue).
      var len = toLength(items.length);

      // 13. If IsConstructor(C) is true, then
      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
      // 14. a. Else, Let A be ArrayCreate(len).
      var A = isCallable(C) ? Object(new C(len)) : new Array(len);

      // 16. Let k be 0.
      var k = 0;
      // 17. Repeat, while k < lenโ€ฆ (also steps a - h)
      var kValue;
      while (k < len) {
        kValue = items[k];
        if (mapFn) {
          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
        } else {
          A[k] = kValue;
        }
        k += 1;
      }
      // 18. Let putStatus be Put(A, "length", len, true).
      A.length = len;
      // 20. Return A.
      return A;
    };
  }());
}
Answer from NonPolynomial on Stack Overflow
๐ŸŒ
Freemediatools
freemediatools.com โ€บ babeles6toes5tool
Babel ES6 to ES5 Converter - Online JavaScript Transpiler | Advanced Tool
Convert ES6+ JavaScript to ES5 online with our advanced Babel transpiler. Real-time conversion, syntax highlighting, and code optimization. Perfect for legacy browser compatibility.
Top answer
1 of 1
4

Include this polyfill snippet above your code, so you can transpile it on the fly online. But for production you should use babel-polyfill

// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === 0 || !isFinite(number)) { return number; }
      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
    };
    var maxSafeInteger = Math.pow(2, 53) - 1;
    var toLength = function (value) {
      var len = toInteger(value);
      return Math.min(Math.max(len, 0), maxSafeInteger);
    };

    // The length property of the from method is 1.
    return function from(arrayLike/*, mapFn, thisArg */) {
      // 1. Let C be the this value.
      var C = this;

      // 2. Let items be ToObject(arrayLike).
      var items = Object(arrayLike);

      // 3. ReturnIfAbrupt(items).
      if (arrayLike == null) {
        throw new TypeError("Array.from requires an array-like object - not null or undefined");
      }

      // 4. If mapfn is undefined, then let mapping be false.
      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
      var T;
      if (typeof mapFn !== 'undefined') {
        // 5. else      
        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
        if (!isCallable(mapFn)) {
          throw new TypeError('Array.from: when provided, the second argument must be a function');
        }

        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
        if (arguments.length > 2) {
          T = arguments[2];
        }
      }

      // 10. Let lenValue be Get(items, "length").
      // 11. Let len be ToLength(lenValue).
      var len = toLength(items.length);

      // 13. If IsConstructor(C) is true, then
      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
      // 14. a. Else, Let A be ArrayCreate(len).
      var A = isCallable(C) ? Object(new C(len)) : new Array(len);

      // 16. Let k be 0.
      var k = 0;
      // 17. Repeat, while k < lenโ€ฆ (also steps a - h)
      var kValue;
      while (k < len) {
        kValue = items[k];
        if (mapFn) {
          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
        } else {
          A[k] = kValue;
        }
        k += 1;
      }
      // 18. Let putStatus be Put(A, "length", len, true).
      A.length = len;
      // 20. Return A.
      return A;
    };
  }());
}
๐ŸŒ
Hexmos
hexmos.com โ€บ freedevtools โ€บ tldr โ€บ common โ€บ babel
Transpile JavaScript - Babel ES6 to ES5 | Online Free DevTools by Hexmos
Transpile JavaScript code with Babel. Convert ES6/ES7 syntax to ES5 for broader browser compatibility. Free online tool, no registration required.
๐ŸŒ
Gitlab
jstool.gitlab.io โ€บ es6-to-es5-converter
ES6+ to ES5 converter, JS Syntax Converter - Online Babel.js compiler - Online ES6/ES7/ES8 to ES5 Conversion for Legacy Browser Compatibility
Online Babel.js compiler - Convert JavaScript modern syntax to legacy syntax (ES5) for legacy browser compatibility ... Import folders, batch convert js files, download zip and extract to maintain original file tree and path structure ยท Solve ES6, ES7, ES8 and other new syntax browser error ...
๐ŸŒ
Ambreenkhan
ambreenkhan.dev โ€บ javascript โ€บ z-convert-es6-to-es5
How to Convert ES6 into ES5 using Babel
The babel command takes two arguments: the path to your ES6 code and a path where you want your ES5 code to be placed. Adding the -d flag to the command instructs Babel to write the transpiled code to a directory. In above example, ES6 code is in src directory and babel writes the transpiled ...
๐ŸŒ
Freemediatools
freemediatools.com โ€บ babeljscompilertool
Free Babel Compiler Online - Free JavaScript ES6+ to ES5 Transpiler | JSX & React Support
Free online Babel JavaScript compiler and transpiler. Convert modern ES6+, ES2015-ES2024, JSX, React code to browser-compatible ES5 JavaScript instantly. No installation required.
๐ŸŒ
Medium
medium.com โ€บ @SunnyB โ€บ how-to-convert-es6-into-es5-using-babel-1b533d31a169
How to Convert ES6 into ES5 using Babel | by Sunny Beatteay | Medium
July 31, 2019 - Babel is a transpiler (translates code in one language to another computer language at the same abstraction level) that can turn our ES6 code into ES5. Iโ€™m going to assume you know how to use both node and npm and have them both installed ...
Find elsewhere
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ babeljs โ€บ babeljs_transpile_es6_features_to_es5.htm
BabelJS - Transpile ES6 features to ES5
Let us run the following command to convert the code โˆ’ ... If you see the ES5 code the let keyword is replaced with the var keyword. Also the variable inside the if block is renamed to _a to have the same effect as when declared with the let keyword. In this section, we will learn about the ...
๐ŸŒ
DEV Community
dev.to โ€บ sunnyb โ€บ how-to-convert-es6-into-es5-using-babel-3k31
How to Convert ES6+ into ES5 using Babel - DEV Community
March 11, 2020 - The babel command takes two arguments: the path to your ES6+ code and a path to where you want your ES5 code to go. If you have all your JavaScript code housed in a directory, then you can add the -d flag to the command to tell Babel for look ...
๐ŸŒ
CodeSandbox
codesandbox.io โ€บ p โ€บ sandbox โ€บ convert-es6-to-es5-with-babel-z0cq1
Convert-ES6-to-ES5-with-babel
CodeSandbox is a cloud development platform that empowers developers to code, collaborate and ship projects of any size from any device in record time.
๐ŸŒ
Checkedexception
checkedexception.com โ€บ blog โ€บ convert-javascript-es6-to-es5-using-babel
Convert JavaScript ES6+ to ES5 using Babel
Hi there, my name is Amir Boroumand. I am an experienced software developer with a track record of delivering successful software.
๐ŸŒ
ES6 to ES5 Converter
es6-to-es5.vercel.app
ES6 to ES5 Converter | Free Online JavaScript Transpiler & Minifier
Convert ES6/ES2015+ JavaScript code to ES5 instantly. Free online transpiler with minification, deep minify, and browser compatibility features. Includes tutorials and guides on JavaScript transpilation. No signup required!
Top answer
1 of 3
87

You don't tell Babel to target ES5, you choose the necessary presets/plugins that do that for you. For example, if you use the es2015 preset, this will compile ES6 code to ES5-compatible code. You don't specify a "target".

The guide below will take you through using Babel to transform ES6 code into code that can run in an environment that supports <= ES5.


0. A note on API changes from Babel 5

In the documentation for Babel 6:

The babel package is no more. Previously, it was the entire compiler and all the transforms plus a bunch of CLI tools, but this lead to unnecessarily large downloads and was a bit confusing. Now weโ€™ve split it up into two separate packages: babel-cli and babel-core.

And:

Babel 6 ships without any default transforms, so when you run Babel on a file it will just print it back out to you without changing anything.

______

1. Install babel-cli

First, as in the docs, you need to install babel-cli:

$ npm install babel-cli

______

2. Define presets in .babelrc

Second, you need to use a .babelrc (docs) local to your files and explicitly define the presets that you want Babel to use. For example, for ES6+ features use the env preset.

...a smart preset that allows you to use the latest JavaScript without needing to micromanage which syntax transforms (and optionally, browser polyfills) are needed by your target environment(s).

Install it:

npm install @babel/preset-env

And then declare it in your .babelrc:

{
  "presets": ["@babel/preset-env"]
}

Note: if you are using Babel 7.x you may prefer to use a "project-wide configuration" (babel.config.js) (docs) which "applies broadly, even allowing plugins and presets to easily apply to files in node_modules or in symlinked packages".

______

3. Run babel

Now running the babel command as in your example should work:

$> babel ./src/myclass.js --out-file ./out/app.js

Alternatively, use a bundler like webpack, rollup, or browserify, with their respective babel plugin.

2 of 3
10

The exact answer using babel with nodejs (and using CLI):

Install babel and preset

npm install babel-cli babel-preset-es2015

Execute with npx

npx babel  ./src/myclass.js --out-file ./out/app.js --presets babel-preset-es2015

Note

When babel-cli is globally installed could be not working. So this is my definitive solution

๐ŸŒ
Our Code World
ourcodeworld.com โ€บ articles โ€บ read โ€บ 692 โ€บ how-to-convert-automatically-es6-js-to-es5-using-babel-in-netbeans
How to convert automatically ES6 JS to ES5 using Babel in NetBeans | Our Code World
February 14, 2018 - If you care about your project, probably you write already your JavaScript using the latest syntax of ES6. The only disadvantage of writing all your code following the ES6 syntax is that it won't be compatible with older browser that doesn't offer support for it. The best solution for this problem is simply use BabelJS to transpile your code and provide cross-browser support. In this tutorial, we'll show you how to convert ES6 JS files into ES5 automatically configuring Babel Js in NetBeans.
๐ŸŒ
DotNetCurry
dotnetcurry.com โ€บ javascript โ€บ 1293 โ€บ transpile-es6-modules-es5-using-babel
Transpiling ES6 modules to ES5 using Babel | DotNetCurry
We can use Babel directly or with a task manager like Gulp to transpile ES6 modules into ES5. This uses Babel to transpile ES6 code to ES5
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ babeljs โ€บ babeljs_transpile_es6_modules_to_es5.htm
BabelJS - Transpile ES6 Modules to ES5
The gulpfile.js is created here. A user will browserfiy and use tranform to babelify. babel-preset-env is used to transpile the code to es5.