6to5 turns ES6 code into vanilla ES5, so you can use ES6 features today.
- Fast - no redundant code added so your compiled code is as fast as possible.
- Extensible - with a large range of plugins.
- Lossless - source map support so you can debug your compiled code with ease.
- Compact - maps directly to the equivalent ES5 with no runtime.
- Concise - does not pollute scope with unneccesary variables.
Installation
$ npm install -g 6to5
Plugins
To be implemented:
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
Node
Launch a repl.
$ 6to5-node
Evaluate code.
$ 6to5-node -e "class Test { }"
Compile and run test.js
.
$ 6to5-node test
Node
var to5 = require("6to5");
to5.transform("code();");
to5.transformFileSync("filename.js");
to5.transformFile("filename.js", function (err, data) {
});
Options
to5.transform("code();", {
blacklist: [],
whitelist: [],
sourceMap: false,
sourceMapObject: false,
filename: "unknown",
format: {}
});
Require hook
All subsequent files required by node will be transformed into ES5 compatible
code.
require("6to5/register");
Caveats
For-of
Iterator/Symbol polyfill required.
Classes
Cannot subclass built-ins such as Date
, Array
, DOM
etc.
Comparison to Traceur
Performance
The future
Implement own parser and generator that preserves whitespace and automatically
works out generation rules based on code input.