# 如何打包图片
# file-loader:
- 移动file到dist
- 返回生成的文件名
import avatar from './avatar.jpg';
console.log(avatar)
// 输出的是文件名 例如ababafbadf.jpg。可以通过配置options来控制文件名
{
	rules:[{
		test:/\.(jpg|png|gif)$/,
		use:{
			loader: 'file-loader',
			options:{
				name:'[name]_[hash].[ext]',
				outputPath:'images/'
			}
		}
	}]
}
[name]是原来的文件名
[hash]是图片的hash值
[ext]是原来的扩展名
# url-loader 与 file-loader的区别
url-loader 在文件大小(单位 byte)小于limit时把图片转成base64格式。 大于limit时跟file-loader一样,返回一个url地址。
最佳实践: 在options中配置limit,只把小图片转成base64. 如果图片过大,虽然减少了图片的请求,但是js加载解析图片的时间过长,白屏时间就长。
{
	rules:[{
		test:/\.(jpg|png|gif)/,
		use:{
			loader: 'url-loader',
			options: {
				// 小于 5kb 的图片用 base64 格式产出
				// 否则,依然延用 file-loader 的形式,产出 url 格式
				limit: 5 * 1024,
				name:'[name]_[hash].[ext]',
				outputPath:'images/',
				// 设置图片的 cdn 地址(也可以统一在外面的 output 中设置,那将作用于所有静态资源)
				publicPath: 'http://cdn.abc.com'
			},
		}
	}]
}