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

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

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

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

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

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

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


person Shankar Prakash G    schedule 28.01.2017    source источник
comment
Где вы используете изображения? Это внутри ваших файлов sass и less?   -  person PaladiN    schedule 31.01.2017
comment
Да, в файле SASS.   -  person Shankar Prakash G    schedule 03.02.2017
comment
Это может быть полезно github.com/JeffreyWay/laravel-mix/issues/218   -  person Marty Aghajanyan    schedule 03.02.2017
comment
Если проблема не устранена, смысл loaders состоит в том, чтобы webpack понял, как обращаться с содержимым файла, отличным от javascript. Таким образом, удаление загрузчиков для images не помогает webpack в комплектации images.   -  person debatanu    schedule 10.02.2017


Ответы (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() интерпретируются как импорт 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-адрес поддержки вашего проекта начинается с /, вы можете использовать его как есть, никаких проблем не возникнет.

person Shankar Prakash G    schedule 13.02.2017