When block scoped variables caused the block to be wrapped in a closure, the variable `bindings` remained in parent function scope, which caused the JSX element to be hoisted out of the closure.
babel-plugin-transform-es2015-block-scoping
Compile ES2015 block scoping (const and let) to ES5
Installation
npm install --save-dev babel-plugin-transform-es2015-block-scoping
Usage
Via .babelrc (Recommended)
.babelrc
{
"plugins": ["transform-es2015-block-scoping"]
}
Via CLI
babel --plugins transform-es2015-block-scoping script.js
Via Node API
require("babel-core").transform("code", {
plugins: ["transform-es2015-block-scoping"]
});