it-swarm.com.ru

Babel 6 CLI: неожиданный экспорт токенов?

Я пытаюсь запустить Babel через 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;
9
iwatakeshi

Самый простой способ начать работу - использовать preset .

Сначала давайте установим наши зависимости:

$ 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? Кажется утомительным, если мне нужно установить плагины для каждого проекта, который требует этого ...

Это плохая идея, поскольку это означает, что вы никогда не сможете обновить ее, не обновляя каждый код вашего проекта. Наличие локальных версий означает, что эта потенциальная ошибка менее вероятна.

16
James Kyle

Я получил ту же ошибку, но мои конфиги webpack/babel выглядели корректно. Методом проб и ошибок я заменил export myFunction на export default myFunction, и ошибка была устранена.


Позже я понял, что правильный способ экспорта - это export {myFunction}. Я реализовал это, и все работает отлично.

4
user3405291