2014-09-29 03:11:43 +10:00
2014-09-29 00:25:16 +10:00
2014-09-28 23:39:22 +10:00
2014-09-28 23:39:22 +10:00
2014-09-29 01:34:08 +10:00
2014-09-28 23:39:22 +10:00
2014-09-28 23:39:22 +10:00
2014-09-28 23:39:22 +10:00
2014-09-28 23:39:22 +10:00
2014-09-29 00:25:01 +10:00
2014-09-29 01:38:29 +10:00
2014-09-28 23:39:22 +10:00

6to5

Travis Status Code Climate Score Coverage Dependency Status

6to5 turns ES6 code into vanilla ES5, so you can use ES6 features today.

  • Fast - 10x faster than Traceur.
  • Easy - with Browserify support, Node API, Connect Middleware and a CLI.
  • Lossless - source map support so you can debug your compiled code with ease.
  • Compact - maps directly to the equivalent ES5 with no runtime required.
  • Concise - does not pollute scope with unneccesary variables.

Features

Name Implemented
Arrow functions
Classes
Default parameters
Spread
Block binding
Property method assignment
Rest parameters
Template literals
Modules
Destructuring assignment
Generators

Installation

$ npm install -g 6to5

Usage

CLI

Compile the file script.js and output it to script-compiled.js.

$ 6to5 script.js -o script-compiled.js

Compile the entire src directory and output it to the lib directory.

$ 6to5 src -d lib

Compile the file script.js and output it to stdout.

$ 6to5 script.js

Browserify

$ browserify script.js -t 6to5/browserify --outfile bundle.js

Node

var to5 = require("6to5");

to5.transform("code();");

to5.transformFileSync("script.js");

to5.transformFile("script.js", function (err, data) {

});
Options
to5.transform("code();", {
  // List of transformers to EXCLUDE
  // This is a camelised version of the name found in `features`
  // eg. "Arrow functions" is "arrowFunctions"
  blacklist: [],

  // List of transformers to ONLY use.
  // See `blacklist` for naming scheme.
  whitelist: [],

  // Append source map and comment to bottom of returned output.
  sourceMap: false,

  // Filename for use in errors etc.
  filename: "unknown",

  // Format options
  // See https://github.com/Constellation/escodegen/wiki/API for options.
  format: {}
});

Require hook

All subsequent files required by node will be transformed into ES5 compatible code.

require("6to5/register");

Connect Middleware

var to5 = require("6to5");

app.use(to5.middleware({
  transform: {
    // options to use when transforming files
  },
  src: "assets",
  dest: "cache"
}));

app.use(connect.static("cache"));

Browserify

var to5 = require("6to5");
browserify()
  .transform(to5.browserify)
  .require("script.js", { entry: true })
  .bundle({ debug: true })
  .pipe(fs.createWriteStream("bundle.js"));

Comparison to Traceur

Performance

Description
No description provided
Readme 79 MiB
Languages
JavaScript 99.5%
Makefile 0.3%
HTML 0.1%