Webpack загружает собственные модули es6 в браузер с резервным копированием

Учитывая, что большинство браузеров теперь поддерживают собственные модули ES6 и в сочетании с возможностями HTTP / 2, в этих браузерах практично загружать разделенные модули ES6, но с запасным вариантом с использованием атрибута тега сценария nomodule для других браузеров.

Исходя из этого, я хочу настроить webpack именно для этого; так что помимо выполнения обычного объединения (например, создания app.bundle.js) он также копирует модули ES6 в папку вывода и обновляет URL-адреса импорта (можно предположить, что весь код JS использует импорт, который сам является модулями ES6 - очевидно, обычная транспиляция JS / UMD было бы неплохо, пока все не предоставят пакеты модулей ES6 в npm).

Я думаю, что webpack может просто скопировать эти импортированные модули в папку вывода (использовать плагин копирования), одновременно обновляя URL-адреса импорта, например, если бы у меня были:

import _ from "lodash-es";

Webpack должен скопировать папку node_modules/lodash-es в папку 'modules' в выходной папке и переписать импорт примерно так, как показано ниже (расположение вывода, очевидно, можно настроить):

import _ from "./modules/lodash-es"

Я не вижу простых решений этой проблемы (я могу только представить, что они станут более распространенными, когда люди будут применять собственные модули ES6); Я собираюсь продолжить работу над решением, которое соответствует моим потребностям и будет задокументировано здесь, но если у кого-то есть рабочее решение этой проблемы или ссылка на него, пожалуйста, дайте нам знать, поскольку я надеюсь, что не единственный человек, пытающийся чтобы решить эту проблему.

1
0
254
1

Ответы 1

Потратив слишком много времени на попытки заставить что-то работать, я решил пока придерживаться обычного подхода к пакетам; будет интересно посмотреть, как стандарты W3C решают проблему разрешения модуля ES6 (я знаю, что Google предложил файл сопоставления). Я думаю, как только это выяснится, мы можем увидеть решения, появляющиеся для этой проблемы.

Другие вопросы по теме