Laravel mix: конфигурация для преобразования изображений в базу 64 - PullRequest
0 голосов
/ 25 октября 2019

Я ищу несколько советов о том, как настроить микс Laravel, чтобы найти ресурсы изображения с определенным пороговым размером и перекодировать их в таблицу стилей в виде строк Base 64. Я могу добиться этого с помощью Webpack, используя url-loader, но я изо всех сил пытаюсь заставить работать конфиг в моем конфиге Mix. Что я пробовал:

const mix = require('laravel-mix');

mix.setPublicPath('public_html/');
mix.js('resources/uxmaps/js/app.js', 'uxmaps/js/app.js').version()
.webpackConfig({
        module: {
            rules: [
{
                test: /\.(png|jpg|gif)$/i,
                use: [
                  {
                    loader: 'url-loader',
                    options: {
                      limit: 8192,
                        outputPath: 'images'
                    },
                  },
                ],
}
            ]
        }
    })
   .sass('resources/sass/app.scss', 'css/main.css')

Это компилируется без ошибок, и все же это просто не работает;мое фоновое изображение в моем sass-файле, например background-image: url(/assets/logo.jpg); (3kb), остается в исходном css-файле как есть.

Во-вторых, я также попытался выделить часть конфигурации url-loader в отдельный файл. (импортированный модуль) в соответствии с документами mix: https://laravel -mix.com / docs / 5.0 / extending-mix (см. раздел «Использование» внизу). Тот же результат: он компилируется без ошибок, но просто не работает.

Наконец, я также пытался сделать это с этим плагином CSS Post , но при компиляции он выдавал мне ошибки, связанные сверсии зависимостей (я думаю, что это уже устарело).

Есть ли какие-либо указатели на то, почему этот код не работает должным образом, или иным образом любые другие способы конвертировать изображения в встроенную Base 64 с помощью Laravel mix?

Спасибо

РЕДАКТИРОВАТЬ Я обнаружил, что я использовал абсолютные пути для изображения, и поэтому Mix игнорировал их, согласно документам . Если я перехожу на относительный путь, то Mix выводит css как background-image: url(/images/logo.jpg?dab783c3f2e3b389830733b050848c8a); и - get this- url-loader берет файл jpg и дает мне файл с именем 'logo.jpg' в папке public_html / images, котораяэто вообще не jpg, а текстовый файл, содержащий код Base64 ....: /

Как получить код Base 64 для записи в таблицу стилей?!

...