Babel ES6: Импортировать узловые модули, которые необходимо перекрыть в ES6, а также

88
8

Я импортирую модуль узла правильно, но сталкиваюсь с проблемой, когда модуль узла, который я импортирую, написан в es6, и babel не может его перекрыть.

В заголовке базового класса:

import foo from 'bar/lib/foo';

в foo.js в узловых модулях:

import Debug from 'debug';
export default class foo from bar {
...
...
...

}

Сообщение об ошибке:

import Debug from 'debug';
^^^^^^

SyntaxError: Unexpected token import

Как вы можете видеть, он может найти файл foo.js, но он не запускает модуль узла в es6. Как я могу заставить Babel транслировать как базовый код, так и модуль узла, который он пытается импортировать?

спросил(а) 2021-01-25T16:57:07+03:00 4 месяца, 3 недели назад
1
Решение
63

Модуль узла должен быть скомпилирован отдельно от исходного кода. Если вы используете внешнюю библиотеку, у них должен быть каталог с перекодированным кодом. Если вы пишете свои собственные, вам нужно использовать npm link и скомпилировать ее отдельно.

Если узел-узел уже имеет переполненный каталог (например, dist), вы можете попробовать импортировать преобразованный код в модуль узла:

import foo from 'bar/dist/foo';

ответил(а) 2021-01-25T16:57:07+03:00 4 месяца, 3 недели назад
62

У вас есть файл.babelrc с этим контентом?

{
"presets": ["es2015"],
"plugins": []
}

Здесь вы можете проверить пример: https://github.com/Talento90/ima-up

ответил(а) 2021-01-25T16:57:07+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема