一、webpack的loader是什么?
webpack默认只能识别js和JSON文件,但是实际工作中会有很多类型的文件,比如:jpg、png、gif、css等,这时就需求loader来帮助webpack去识别翻译这些文件。
备注:本文node版本10.13.0 ,webpack版本4.26.0 webpack-cli版本3.1.2
二、file-loader打包图片资源
1、安装file-loader
npm i file-loader -D
2、配置 webpack.config.js
const path = require('path');
module.exports = {
// 入口文件
entry: './src/index.js',
output: {
// 输出文件名
filename: 'built.js',
// 输出文件路径
path: path.resolve(__dirname,'dist')
},
// 配置loader模块
module: {
rules: [
{
// 找到项目中的图片资源
test: /\.(jpg|png|gif)$/,
use: {
// 使用file-loader编译图片资源
loader: 'file-loader' ,
// loader的配置项
options: {
// placeholder 占位符
name: '[name].[ext]',
// 输出到的文件夹
outputPath:'images/'
}
}
}
]
},
// 打包模式有两种:development和production;默认是production模式,会自定压缩代码
mode: 'development'
}
三、url-loader打包图片资源
1、安装url-loader
npm i url-loader -D
2、配置 webpack.config.js
const path = require('path');
module.exports = {
// 入口文件
entry: './src/index.js',
output: {
// 输出文件名
filename: 'built.js',
// 输出文件路径
path: path.resolve(__dirname,'dist')
},
// 配置loader模块
module: {
rules: [
{
// 找到项目中的图片资源
test: /\.(jpg|png|gif)$/,
use: {
// 使用url-loader编译图片资源
loader: 'url-loader',
// loader的配置项
options:{
// placeholder 占位符
name:'[name].[ext]',
// 输出到的文件夹
outputPath:'images/'
// 小于8kb的图片,会转化成base64,减少http请求,
// 大于8kb的图片,会通过file-loader编辑
limit: 8 * 1024
}
}
}
]
},
// 打包模式有两种:development和production;默认是production模式,会自定压缩代码
mode: 'development'
}
webpack系列笔记会持续更新,敬请关注