Laravel Mix为url()禁用文件加载器

时间:2017-01-28 07:39:27

标签: php laravel webpack laravel-5.4

Laravel 5.4引入了laravel混合物和webpack。没有明确的文档来处理laravel混合中的图像(比如,它是如何工作的,并根据我们的需要定制它)。由于它没有像我预期的那样工作,我想为我当前的项目禁用它。

我怎么能禁用它?

我尝试删除webpack.config.js中的以下代码:

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

但运行命令npm run dev会产生此错误:

  

您可能需要适当的加载程序来处理此文件类型。

1 个答案:

答案 0 :(得分:5)

Laravel Mix版本0.8及以上

与laravel mix v0.8一样,有简单的api选项可以做到。要在webpack.mix.js

中禁用以下选项中的url()文件加载器集
mix.options({
    processCssUrls: false
});

Laravel Mix版本0.7及以下

解决方案1:禁用网址()处理

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(/images/something.jpg) 。如果您的项目支持以/开头的网址,则可以使用,因为它不存在任何问题。