- В приведенном выше conf файл-загрузчик нарушает поведение url-загрузчика (возможно, из-за того, что я не чётко указываю выходную папку) Я хорошо понимаю?
При определении обоих загрузчиков вы будете иметь поведение обоих, то есть кодировать все файлы на месте в строки base64, когда их размер <10000 байт, и копировать их все в каталог дистрибутива. </p>
Вы были правы удалить объявление загрузчика file-loader
, если вы хотите, чтобы поведение кодировалось как base64, если размер <10000 байт, или копировалось в папку распространения, если размер> 10000 байт.
Поскольку url-loader
имеет параметр fallback
, а его значение по умолчанию file-loader
, второе объявление file-loader
не требуется, если целевые файлы одинаковы для каждого загрузчика.
- в каких случаях вам действительно нужен загрузчик файлов?
Всякий раз, когда вы хотите скопировать файл в каталог dist и указать ссылку на местоположение этого файла в общем пути (откуда будут передаваться статические ресурсы; свойство publicPath
webpack conf) в вашем комплекте приложения. Например, если вы настроили file-loader
для копирования изображений и назвали их [hash].[ext]
, вы можете сделать:
const img = require('avatar.jpg')
console.log(img) // => /public/[hash].jpg
- В каких случаях полезно комбинировать оба варианта (если есть)?
Используйте оба, если у вас есть файлы, которые вы всегда хотите скопировать (file-loader
), и файлы, которые вы, возможно, захотите закодировать в файлы комплекта (url-loader
). Будьте осторожны, чтобы не использовать одинаковые типы файлов для обоих загрузчиков, иначе вы можете копировать файлы, которые также кодируются в ваши пакеты с помощью url-loader
.