Как заставить "экспорт по умолчанию" работать в файле плагина Babel? - PullRequest
0 голосов
/ 19 сентября 2018

Я взял этот пример плагина прямо из документации (https://babeljs.io/docs/en/plugins#plugin-development)

export default function() {
  return {
    visitor: {
      Identifier(path) {
        const name = path.node.name;
        // reverse the name: JavaScript -> tpircSavaJ
        path.node.name = name.split("").reverse().join("");
      }
    }
  };
}

Мой babel.config.js файл такой:

module.exports = {
    plugins: [
        'transform-es2015-modules-commonjs',
        './babelPlugin.js',
    ],
    presets: [
        '@babel/env'
    ]
} ;

Я запускаю Babel с командой babel testInput.js -o testOutput.js

Но я получаю эту ошибку:

D:\Projects\Babel plugin test\babelPlugin.js:1
(function (exports, require, module, __filename, __dirname) {   export default function() {
                                                                ^^^^^^
SyntaxError: Unexpected token export

Если вместо export default я использую module.exports =, все работает нормально.

Почему export default вызываетсинтаксическая ошибка?

1 Ответ

0 голосов
/ 19 сентября 2018

Babel скомпилирует testInput.js, потому что это то, что говорит babel testInput.js -o testOutput.js, но ничего в вашей конфигурации не скомпилирует babelPlugin.js.Если вы хотите написать его с синтаксисом модуля ES6, вам сначала нужно отдельно скомпилировать плагин.

...