У меня возникает то, что кажется конфликтом в babel/register
между двумя локальными пакетами npm.Противоречивое использование babel/register
В пакете я делаю следующее:
require('babel/register');
require('index');
И в индексный файл одного и того же пакета:
require('test');
И в пакете "тест":
require('babel/register');
require('test/index');
Это вызывает следующую ошибку:
throw new Error("only one instance of babel/polyfill is allowed");
Но если я беру babel/register
строку из пакета «тест», я получаю следующее сообщение об ошибке в index
файл пакета «тест»:
import fs from 'fs';
^^^^^^
SyntaxError: Unexpected reserved word
Я попытался с помощью System.import
для импорта пакета «test» (с использованием полина, указанного на сайте BabelJS), но в этом контексте я получаю ту же ошибку, что и выше. Как мне следует импортировать один пакет в другой и сохранить возможность использования импорта/экспорта ES6 и других функций ES6?
EDIT: Я немного упростил это, мне все еще требуется «тест» в первый пакет, но я не загружаю файл-посредник. Вместо этого «основной» файл «test» установлен на test/index.
Теоретически, теперь он просто загружает один модуль ES6, который он должен иметь возможность регистрировать. Я все еще получаю вышеуказанную ошибку.
Как правило, ожидается, что библиотеки будут предварительно скомпилированы перед распространением. 'babel/register' по умолчанию не обрабатывает файлы внутри' node_modules'. – loganfsmyth
Он делает, если вы будете следовать шаблону, за которым я следую. Если я полностью исключаю второй пакет, все модули в первом пакете регистрируются и преобразуются. – BTC
Я в замешательстве. В вашем вопросе говорится, что если вы берете 'babel/register' из модуля' test', он дает ошибку об импорте. Это потому, что 'test' находится в' node_modules', поэтому он не будет скомпилирован. Ожидаете ли вы, что внешний 'babel/register' должен также скомпилировать' test'? – loganfsmyth