Webpack загружает собственные модули ES6 в браузер с помощью резервного отката - PullRequest
0 голосов
/ 31 октября 2018

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

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

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

import _ from "lodash-es";

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

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

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

1 Ответ

0 голосов
/ 02 ноября 2018

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

...