The untransformed `let` keyword causes problems for older parsers. I understand using `let` instead of `var` ensures each getter function has its own binding for the KEY variable, but the same can be accomplished (with less code) using a `.forEach` callback function, and this way there's no need to worry about generating a unique name for the `key` variable.
babel-plugin-transform-es2015-modules-umd
Installation
$ npm install babel-plugin-transform-es2015-modules-umd
Usage
Via .babelrc (Recommended)
.babelrc
{
"plugins": ["transform-es2015-modules-umd"]
}
You can also override the names of particular libraries when this module is
running in the browser. For example the es6-promise library exposes itself
as global.Promise rather than global.es6Promise. This can be accomidated by:
{
"plugins": [
["transform-es2015-modules-umd", {
"globals": {
"es6-promise": "Promise"
}
}]
]
}
Via CLI
$ babel --plugins transform-es2015-modules-umd script.js
Via Node API
require("babel-core").transform("code", {
plugins: ["transform-es2015-modules-umd"]
});