Javascript 如何禁用<;1kb SVG,由于url加载程序?
默认情况下,Nuxt使用Javascript 如何禁用<;1kb SVG,由于url加载程序?,javascript,vue.js,webpack,nuxt.js,Javascript,Vue.js,Webpack,Nuxt.js,默认情况下,Nuxt使用url加载器对小于1kb的任何图像进行base64编码和内联: 以下是默认Nuxt配置的相关部分: export default { build: { extend(config, { isDev }) { config.module.rules = [ { test: /\.svg$/i, use: [{ loader: 'url-loader',
url加载器
对小于1kb的任何图像进行base64编码和内联:
以下是默认Nuxt配置的相关部分:
export default {
build: {
extend(config, { isDev }) {
config.module.rules = [
{
test: /\.svg$/i,
use: [{
loader: 'url-loader',
options: {
limit: false,
name: '[path][name].[ext]',
},
}],
},
...config.module.rules,
];
},
},
}
我想为SVG禁用此base64内联
以下是SVG如何包含在我的模板中:
<img
:src="require(`@/assets/images/${src}`)"
/>
这会导致图像无法在我的开发服务器上渲染:
没有生成错误。禁用SVG内联的正确方法是什么
编辑:
由于没有得到任何响应,我最终使用了这个可怕的方法来循环遍历所有现有规则,并显式地从中删除svg
:
export default {
build: {
extend(config, { isDev }) {
config.module.rules = config.module.rules.map(rule => {
if (rule.test && rule.test.toString().indexOf('svg') > -1) {
const regex = rule.test;
rule.test = new RegExp(regex.source.replace('|svg', ''), regex.flags);
}
return rule;
});
config.module.rules = [
{
test: /\.svg$/i,
use: [{
loader: 'url-loader',
options: {
limit: false,
name: '[path][name].[ext]',
},
}],
},
...config.module.rules,
];
},
},
}
与其扩展默认配置,不如从默认配置文件中删除svg好吗?默认配置文件在Nuxt的源代码中,所以我不这么认为。我明白了,对不起,我帮不了什么忙-考虑到上下文,您的“可怕”解决方案实际上是有意义的。希望有人能给你一个更好的答案!