url-loader 只转换部分文件?

发布于 2022-09-04 14:11:32 字数 481 浏览 16 评论 0

目前是需要内联转base64的图片都用jpg格式。直接引用的使用png格式。但是gif没办法搞定只转换部分(或者实现只转换某些文件夹下的)

//webpack.js 中loader配置
{
    test: /\.(gif|jpg)$/,
    loader: 'url-loader?limit=30000',
    options: {
        name: '[name].[ext]?[hash]'
    }
},
{
    test: /\.(png|svg)$/,//(png|jpg|gif|svg)
    loader: 'file-loader',
    options: {
        name: '[name].[ext]?[hash]'
    }
}

loading.vue组件里面和具体页面中分页需要加载更多的.vue文件中。
【组件中的样式文件引用gif一律希望内联,页面中使用的直接引用。不内联】

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尸血腥色 2022-09-11 14:11:32

exclude:使用path.join() 或者 path.resolve() 去处理。不要使用正则或者直接字符串...

{
    test: /\.(gif|jpg|png|svg|ttf|eot|woff|otf)$/,//(png|jpg|gif|svg)//同时处理有问题[建议将正常图片和内联图片分开处理]
    loader: 'file-loader',
    options: {
        name: '[path][name].[ext]?[hash]'//[path][name].[ext]?[hash]!./dir/file.png
    },
    exclude:  [path.join(projectRoot, './vue/img')]//[path.join(projectRoot, './vue/img'),path.join(projectRoot, './vue/component')]
},
{
    test: /\.(gif|png|jpg)$/,//所有需要内联的一律 使用jpg
    loader: 'url-loader',//url-loader?limit=30000!./file.gif
    options: {
        limit:30000,//超过limit 使用file-loader 转换
        name: '[path][name].[ext]?[hash]',
    },
    exclude:  path.join(projectRoot, './vue/image')
}
罪#恶を代价 2022-09-11 14:11:32

webpack.config.js

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

你多了 !./file.jpg的配置. 这样gif 是无法匹配到的

---------- 分割线 -----------

如果只想转换部分的 gif

{
    test: /\.(gif|jpg)$/,
    loader: 'url-loader?limit=30000',
    options: {
        name: '[name].[ext]?[hash]'
    },
    exclude: /正则表达式/, // 排除不想转换的gif
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文