6to5-loader
v3.0.0
Published
6t05 module loader for webpack
Downloads
201
Readme
6to5-loader
Turn ES6 code into vanilla ES5 with no runtime required using 6to5;
Notes: Issues with the output should be reported on the 6to5 issue tracker;
Install
$ npm install --save-dev 6to5-loader
Usage
import Animal from '6to5!./Animal.js';
class Person extends Animal {
constructor(arg='default') {
this.eat = 'Happy Meal';
}
}
export default Person;
var Person = require('6to5!./Person.js').default;
new Person();
Or within the webpack config:
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: '6to5-loader'}
]
}
and then import normally:
import Person from './Person.js';
Troubleshooting
6to5-loader is slow!
Make sure you are transforming as few files as possible. Because you are probably
matching /\.js$/
, you might be transforming the node_modules
folder or other unwanted
source. See the exclude
option in the loaders
config as documented above.
6to5 is injecting a runtime into each file and bloating my code!
6to5 uses a very small runtime for common functions such as _extend
. By default
this will be added to every file that requires it.
You can instead require the 6to5 runtime as a separate module to avoid the duplication.
The following configuration disables automatic per-file runtime injection in 6to5, instead
bundling requiring 6to5-runtime
and making all helpers use it.
NOTE: You must run npm install 6to5-runtime --save
to include this in your project.
loaders: [
// runtime=true tells 6to5 to expect a runtime, but we still need to bundle it.
{test: /\.jsx?$/, exclude: /node_modules/, loader: '6to5-loader?experimental&optional=selfContained'}
]
This can save significant overhead if you use 6to5 in many modules.
Options
See the 6to5
options
License
MIT © Luis Couto