TypeError: (0 , _index.default) не является функцией при использовании Babel в качестве библиотеки в пакете Rollup

Я пытаюсь включить Babel и rollup.js в комплект приложений (который сам объединяется с помощью Rollup), который должен запускаться в браузере (для транспиляции и связывания внутри браузера). У меня накопительный пакет работает без включенного @rollup/plugin-babel. Как только я импортирую @rollup/plugin-babel (и тем самым Babel) в код приложения, я получаю эту ошибку после вызова rollup():

babelv.min.js:101604 Uncaught (in promise) TypeError: (0 , _index.default) is not a function
at NodePath.traverse (babelv.min.js:101604)
at Scope.crawl (babelv.min.js:68561)
at Scope.init (babelv.min.js:68505)
at NodePath.setScope (babelv.min.js:100024)
at NodePath.setContext (babelv.min.js:100040)
at new File (babelv.min.js:106640)
at normalizeFile$ (babelv.min.js:120308)
at tryCatch (babelv.min.js:10464)
at Generator.invoke [as _invoke] (babelv.min.js:10681)
at Generator.next (babelv.min.js:10517)

Я использую эту конфигурацию Babel:

"presets": [
    ["@babel/preset-env", {
        "useBuiltIns": "entry",
        "corejs": 3
    }]
]

У меня есть материал core-js/regenerator-runtime, и он работает правильно.

Глядя на исходный код Babel внутри пакета (@babel/traverse/lib/path/index.js), присутствует синтаксис (0, ..., поэтому Babel не искажает его:

traverse(visitor, state) {
     (0, _index.default)(this.node, visitor, this.scope, state, this);
}

Я просмотрел другие вопросы с похожими ошибками, которые в конечном итоге были вызваны неправильным импортом имени/по умолчанию и циклическими зависимостями, но здесь это не так. Мне интересно, возможно, это ошибка. Или, что более вероятно, мне нужны какие-то специальные плагины или конфигурация, чтобы правильно связать Babel.


person Michael Lindell    schedule 23.02.2021    source источник
comment
Это связано с тем, что подключаемый модуль CommonJS накопительного пакета не может обрабатывать циклические зависимости. Я не знаю, что теперь делать...   -  person Michael Lindell    schedule 23.02.2021


Ответы (1)


В итоге использовал Webpack. Работает отлично.

person Michael Lindell    schedule 24.02.2021