面试题答案
一键面试- 安装相关loader:
file - loader
:用于处理文件资源,包括图片,它会将文件输出到指定目录,并返回一个公共URL。url - loader
:它基于file - loader
,可以将小文件转换为Data URL嵌入到代码中,减少HTTP请求。对于图片,可用于处理小尺寸图片。@svgr/webpack
:专门用于处理SVG文件,能将SVG文件转为React组件等,同时保持良好的兼容性。
npm install file - loader url - loader @svgr/webpack --save - dev
- Webpack配置:
在
webpack.config.js
文件中添加如下配置:
module.exports = {
module: {
rules: [
{
test: /\.(jpg|png)$/,
use: [
{
loader: 'url - loader',
options: {
limit: 8192, // 将小于8KB的图片转为Data URL
name: 'images/[name].[ext]' // 输出到images目录,保持原文件名和扩展名
}
}
]
},
{
test: /\.svg$/,
use: [
{
loader: '@svgr/webpack',
options: {
// 可根据需求配置相关选项,如处理React组件相关配置等
}
},
{
loader: 'file - loader',
options: {
name: 'images/[name].[ext]' // 输出到images目录,保持原文件名和扩展名
}
}
]
}
]
}
};
上述配置中:
- 对于
jpg
和png
图片,url - loader
会将小于8KB
的图片转换为Data URL嵌入代码,大于8KB
的图片会使用file - loader
输出到images
目录,并生成对应的URL引用。 - 对于
svg
图片,先使用@svgr/webpack
进行处理,再使用file - loader
输出到images
目录并生成引用URL,这样能在不同浏览器中保证兼容性。