Laravel Mix отключить загрузчик файлов для URL()

Laravel 5.4 представил ларавельный микс с webpack. Нет четкой документации для работы с изображениями в laravel mix (например, как это работает и настраивать его для наших нужд). Поскольку он не работает так, как я ожидал, я бы хотел отключить его для моего текущего проекта.

Как я могу отключить его?

Я попытался удалить ниже код в webpack.config.js:

{
     test: /\.(png|jpg|gif)$/,
     loader: 'file-loader',
     options: {
         name: '[name].[ext]?[hash]'
      }
}

но выполнение команды npm run dev вызывает эту ошибку:

Для обработки этого типа файла может потребоваться соответствующий загрузчик.

Ответ 1

Laravel Mix Версия 0.8 и выше

Как и в laravel mix v0.8, для этого есть простые варианты api. Чтобы отключить загрузчик файлов url(), установите параметры ниже в webpack.mix.js

mix.options({
    processCssUrls: false
});

Laravel Mix версии 0.7 и ниже

Решение 1: Отключить обработку URL()

URL-адрес url() интерпретируется как import css-loader. В настоящее время CSS-Loader - это подход "все или ничего", поэтому нам нужно отключить всю обработку url(), чтобы сделать это.

Откройте node_modules\laravel-mix\setup\webpack.config.js и внесите следующие изменения:

{ loader: 'css-loader' + sourceMap },

заменить

{ loader: 'css-loader?url=false' + sourceMap.replace("?", "&") },

Решение 2: Использование абсолютной ссылки в url()

URL-адреса, начинающиеся с /, не будут обрабатываться, например: url(/images/something.jpg). Если URL-адрес поддержки вашего проекта, начинающийся с /, вы можете использовать, поскольку он не будет проблемой.