Используйте файл-загрузчик и html-загрузчик вместе

Я работаю над угловым приложением, которое требует html файлы, которые будут извлечены как простые HTML-файлы и в то же время должны проверять наличие <img src="..."> требовать эти изображения (в качестве активов). Кроме того, изображения основаны на корневом пути (так /images/something.png), они должны быть разрешены относительно веб-пакета context настройка (базовый путь).

Как мне этого добиться? Невозможно заставить html-загрузчик хорошо играть с файловым загрузчиком. Поскольку первый выводит файл JS (с require заявления), а последний ожидает простой файл HTML.

1 ответ

Решение

Я нашел решение сам, много копаясь в исходниках соответствующих загрузчиков.

По сути, он не работает по умолчанию, так как загрузчик файлов ожидает "сырой" файл, поэтому, если вы хотите вывести файл HTML, вам нужен источник HTML, а не JS. Однако, html-загрузчик берет файл HTML и выводит файл JS (с require активы и содержание).

Решением был этот глубоко скрытый и фантастический загрузчик извлечения, который анализирует JS, выходящий из html-загрузчика, преобразует его обратно в обычный html, ресурсы по-прежнему необходимы и заменены даже на хеш для очистки кеша.

Это прекрасно, вы передаете вывод в файл-загрузчик и, наконец, у вас есть HTML-файлы!

Пример конфигурации

В моем случае моя конфигурация загрузчика выглядит так:

'file-loader!extract-loader!html-loader' + '?root=' + encodeURIComponent(sourcePath.toString())
Другие вопросы по тегам