Как загрузить тот же файл js с несколькими настройками Babel через веб-пакет? - PullRequest
1 голос
/ 09 января 2020

У моей команды есть собственный скрипт загрузчика элементов, задача которого состоит в том, чтобы вытащить полифилы из веб-компонентов js и затем определить все наши пользовательские элементы. В зависимости от того, поддерживает ли браузер классы или нет, мы должны загрузить один из 2 разных комплектов компонентов.

Наш текущий процесс сборки является запутанным и громоздким. Мы запускаем webpack 3 раза:

  1. Сборка комплекта компонентов с минимальной транспиляцией
  2. Сборка комплекта компонентов снова, но перенос классов (для поддержки ie11)
  3. Прочтите файловую систему, чтобы выяснить, как называются эти пакеты (имена файлов включают в себя хэши, поэтому мы не знаем, какие они будут в начале), и запустите webpack в 3-й раз, введя имена пакетов из 1 и 2, используя webpack's DefinePlugin .

Есть ли способ выбрать настройку babel, основанную на параметре запроса в импорте? Я хотел бы сделать что-то вроде этого:

if (supportsClasses) {
  import('./components.js');
else {
  import('./components.js?enableTranspilation');
}

Для этого нужно изменить настройки babel для этого файла и всего, что он импортирует . Если бы это было возможно, я мог бы собрать весь проект с помощью одного вызова webpack (вместо 3 отдельных).

...