FAQ
Please see babel/rfcs#5, and babel/babel#838 for more information.
Why are this
and being remapped in arrow functions?
Arrow functions are not synonymous with normal functions. arguments
and this
inside arrow functions reference their outer function for example:
Please see babel/babel#842, , babel/babel#733 and for more information.
Why is this
being remapped to undefined
?
Babel assumes that all input code is an ES2015 module. ES2015 modules are implicitly strict mode so this means that top-level this
is not window
in the browser nor is it in node.
If you don’t want this behaviour then you have the option of disabling strict
in the .
PLEASE NOTE: If you do this you’re willingly deviating from the spec and this may cause future interop issues.
Upgrading from Babel 5.x to Babel 6
At the heart of Babel 6 are . What plugins you need completely depends on your specific configuration but just add the following config file to get all the same transforms that were in Babel 5:
Also check out our blog post.
Where did all the docs go?!
Babel 6 removes a lot of the options in favor of so a lot of the docs are no longer applicable.
For every removed option there should be a plugin for it. It’s possible we may have missed something, if you think this is the case, please open an issue!
Babel is an open source project and we appreciate any and all contributions we can get. Please help out with documentation if you can by submitting a pull request to the repo.
See build instructions.
How do I contribute to Babel?
Why am I getting a Syntax Error/Unexpected Token?
It’s most likely the case that you didn’t include a plugin/preset that supports that feature. (It’s also possible it’s a bug in the parser, or that it actually is a syntax error).
We currently use system.
We have a global version for all packages. When we do a release, the only packages that get updated are the packages that actually had changes (we do a git diff
on that folder).
If we only update babel-plugin-transform-exponentiation-operator
to 6.x.x, currently we don’t publish a new version for all packages since the other dependencies are using ^
.
For example, the Babel v6.6.0 release doesn’t mean all packages are now 6.6.0.