Используйте файл-загрузчик и 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())