Закрытие Компилятор не может скомпилировать зарезервированное слово "по умолчанию"
Я использую Babel (фактически Babelify) и Google Closure Compiler.
Babel преобразует следующую строку кода:
import `React` from 'react'
React.createClass(...);
что-то вроде
var _react = require(402);
var _react2 = _interopRequireDefault(_react);
_react2.default.createClass(...);
Проблема в том, что Closure Compiler не нравится .default
литерал и пропускает следующее предупреждение:
ПРЕДУПРЕЖДЕНИЕ. Ключевые слова и зарезервированные слова не допускаются в качестве имен свойств без кавычек в старых версиях JavaScript. Если вы ориентируетесь на более новые версии JavaScript, установите соответствующую опцию language_in. exports.default = {
Я пытался использовать плагины babel es3, такие как http://babeljs.io/docs/plugins/transform-es3-member-expression-literals/, но они, похоже, не работают, возможно, потому, что проблемный код генерируется другим плагином.
Есть ли способ решить эту проблему, не сказав Closure Compiler игнорировать это предупреждение? (Я хочу поддержку ES3).
1 ответ
Сообщение говорит вам точно - установите --language_in
(и, возможно, --language_out
) флаги.
Последняя версия компилятора, v20151216, теперь по умолчанию использует ES6 в качестве языка ввода (ES3 в качестве вывода).