Функция трансформации babel-core не может найти плагин - PullRequest
0 голосов
/ 15 октября 2018

У меня есть модуль глобального узла, который использует функцию babel-core transform.У меня нет .babelrc в корне моего модуля.Он берет файл и в основном просто использует transform для его «компиляции».

const result = transformSync(content, {
    filename: src,
});

Вместе с указанным файлом есть файл .babelrc, и я действительно могу его найти

{
  "presets": ["@babel/preset-env"]
}

но он жалуется на то, что не находит '@ babel / preset-env', что правильно, потому что модуль устанавливается вместе с моим, а не с файлом / .babelrc, который передается.

Я пробовалв https://babeljs.io/docs/en/options много опций, но все равно не получается заставить его работать.

Как настроить transform, чтобы он получал плагины из моего модуля при загрузке конфигурации babel из папки переносимого файла?

1 Ответ

0 голосов
/ 15 октября 2018

По умолчанию загрузчик плагинов Babel ищет плагины относительно файла конфигурации, который ссылается на них, или использует cwd для плагинов, переданных непосредственно в параметрах transformSync.Контроль над этим не распространяется на утилиты, вызывающие Babel.

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

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

...