встроенный JPG-файл URL-загрузчика Webpack

Я пытаюсь встроенно загрузить jpg с помощью url-loader следующим образом:

let image1 = require("url?limit=100000000!./samples/sample.jpg");

после запуска получаю:

"data:image/jpeg;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICIuL3d3d3cvaW1nL3NhbXBsZS5qcGciOw=="

Строка base 64 декодируется как:

module.exports = __webpack_public_path__ + "./wwww/img/sample.jpg";

Я ожидал строку base64 двоичного файла.

Это ожидаемое поведение? как я могу получить строку base64 двоичного файла?

Если я попытаюсь встроить, скажем, html-файл, он будет работать, как и ожидалось... так почему бы не использовать jpg?

Размер файла этого конкретного файла составляет 417 КБ, но параметр предела намного больше.


person Luis    schedule 19.12.2016    source источник


Ответы (1)


Я не пробовал, но что-то вроде этого должно работать:

let image1 = require("!!url?limit=100000000!./samples/sample.jpg");

Проблема в порядке загрузки. Если вы проверите свои webpack.config файлы, где-то у вас есть file-loader для jpg файлов. Я знаю это, потому что знаю, что file-loader выведет это:

module.exports = \__webpack_public_path__ + "./wwww/img/sample.jpg";

... который передается в url-loader. Вот почему вы получаете версию приведенной выше строки base64. Поскольку file-loader возвращает это в url-loader.

Обратитесь к документации по порядку загрузки, чтобы узнать, как переопределить его. думаю поставить!! Прежде чем решить вашу проблему.

person André Pena    schedule 19.12.2016
comment
Идеальный!!! Спасибо, я не знал о порядке загрузчика и трубопроводах. Спасибо за это - person Luis; 20.12.2016