Babel 6 CLI: неожиданный экспорт токенов?
Я пытаюсь запустить Бабель через CLI, используя babel-node
но я продолжаю получать Unexpected token export
ошибка. Я понимаю, что Babel 6 это все о плагинах и что мне нужно установить плагин через .babelrc
но это, кажется, не работает должным образом.
Итак, вот мои вопросы:
- Должен ли я использовать плагин syntax-export-extensions? Я также попытался использовать альтернативный метод, который устанавливает плагин через
package.json
но все равно не повезло. - Кроме того, CLI Babel 6 имеет глобальный
.babelrc
вариант? Кажется утомительным, если мне нужно установить плагины для каждого проекта, который требует этого...
Для тех, кому интересно, что я пытаюсь экспортировать, вот класс:
'use strict';
class Factorial {
static solve (num) {
if(num === 0) return 1;
else return num * Factorial.solve(num - 1);
}
}
console.log(Factorial.solve(5))
export default Factorial;
2 ответа
Самый простой способ начать работу - использовать пресет.
Сначала давайте установим наши зависимости:
$ npm install --save-dev babel-cli babel-preset-es2015
Затем добавьте build
скрипт для вашего package.json, который запускает Babel: (это важно, потому что он будет использовать вашу локальную версию babel-cli
вместо глобально установленного)
"build": "babel input.js"
Ваш package.json
должен выглядеть так:
{
"name": "my-module",
"devDependencies": {
"babel-cli": "^6.x.x",
"babel-preset-es2015": "^6.x.x"
},
"scripts": {
"build": "babel input.js -o compiled.js"
}
}
Наконец, вы хотите обновить свой локальный .babelrc
как это:
{
"presets": ["es2015"]
}
Тогда ты бежишь npm run build
и все готово.
Кроме того, у CLI Babel 6 есть глобальная опция.babelrc? Кажется утомительным, если мне нужно установить плагины для каждого проекта, который требует этого...
Это плохая идея, так как это означает, что вы никогда не сможете обновить ее, не обновляя каждый код вашего проекта. Наличие локальных версий означает, что эта потенциальная ошибка менее вероятна.
Я получил ту же ошибку, но мои конфиги webpack/babel выглядели правильно. Методом проб и ошибок я заменил export myFunction
с export default myFunction
и ошибка была решена.
Позже я понял, что правильный способ экспорта export {myFunction}
, Я реализовал это, и все работает отлично.