咱们知道webpack
自己只能解析js文件,可是咱们的项目中确定会有html
,css
,图片
等其余文件类型,这个时候咱们就须要loader
帮咱们把这些文件转化成webpack
可以处理的有效模块。css
loader
用于对模块的源代码进行转换。loader
可使你在import
或"加载"模块时预处理文件。所以,loader
相似于其余构建工具中“任务(task
)”,并提供了处理前端构建步骤的强大方法。K 能够将文件从不一样的语言(如TypeScript
)转换为JavaScript
,或将内联图像转换为data URL
。loader
甚至容许你直接在JavaScript
模块中import
CSS文件!html
loader
自己就是一个函数,接收源代码为入参,输出编译过以后代码。前端
最常使用的是在webpack.config.js
里指定loader webpack.config.jsnode
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: true
}
}
]
}
]
}
复制代码
test
设置文件匹配规则react
use
指定使用loaderwebpack
options
为使用loader的配置项es6
注意:loader的执行顺序是从右向左依次执行web
ok,咱们来看下经常使用的一些loader使用sass
使用babel-loader
,它依赖babel
,因此须要配置文件.babelrc
bash
而对ES6的解析,咱们只须要在.babelrc
加上以下配置便可:
{
"presets": [
"@babel/preset-env"
]
}
复制代码
接着配置下webpack.config.js
module: {
rule: [
{
test: /\.js$/,
use: ['babel-loader'],
exclude: '/node_modules/'
}
]
}
复制代码
也是使用babel-loader
首先要在.babelrc
增长react的解析配置:
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
复制代码
webpack.config.js
同上
使用css-loader
和style-loader
css-loader
用于加载.css文件,而且转换成commonJs对象
style-loader
将样式经过<style>
标签插入到head
中
咱们先安装一下
配置webpack.config.js
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
复制代码
less
使用less-loader
sass
使用sass-loader
这两个loader都是先将文件转换成css,而后经过css-loader和style-loader输出到页面
webpack.config.js
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader', 'less-loader']
}
]
}
复制代码
1.file-loader webpack.config.js
module: {
rules: [
{
test: /\.(png|svg|jpg|gif)$/,
use: ['file-loader']
}
]
}
复制代码
2.url-loader url-loader
功能和file-loader
差很少,多了一个小资源转base64的功能
webpack.config.js
module: {
rules: [
{
test: /\.(png|svg|jpg|gif)$/,
use: [{
loader: 'url-loader',
options: {
limit: 10240
}
}]
}
]
}
复制代码
limit
就是对转换尺寸的限制。
webpack学习之路(四)webpack-hot-middleware实现热更新
webpack学习之路(三)webpack-dev-middleware
webpack学习之路(二)webpack-dev-server实现热更新
I am moving forward.