Я пытаюсь включить 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.