关闭编译器无法编译保留字 "default"

Closure Compiler failing to compile reserved word "default"

我正在使用 Babel(实际上是 Babelify)和 Google 闭包编译器。

Babel 转换以下代码行:

import `React` from 'react'
React.createClass(...);

类似于

var _react = require(402);
var _react2 = _interopRequireDefault(_react);
_react2.default.createClass(...);

问题是 Closure Compiler 不喜欢 .default 文字,并忽略了以下警告:

WARNING - Keywords and reserved words are not allowed as unquoted property names in older versions of JavaScript. If you are targeting newer versions of JavaScript, set the appropriate language_in option. exports.default = {

我试过使用 babel es3 插件,例如 transform-es3-member-expression-literals,但它们似乎不起作用,可能是因为有问题的代码是由另一个插件生成的。

有没有办法在不告诉 Closure Compiler 忽略这个警告的情况下解决这个问题? (我想要 ES3 支持)。

该消息准确地告诉您 - 设置 --language_in(以及可选的 --language_out)标志。

最新版本的编译器 v20151216 现在默认使用 ES6 作为输入语言(ES3 作为输出)。