2019年1月8日19:21:47
今天主要写一下关于loader
的东西,虽然各种npm i -s xxx-loader
装个不停,但是总体上的思路却没什么特别大的变化。
另外关于webpack4.x
与webpack3.x
的区别似乎又成为了一个让人头疼的问题。
1.将es6
转化为es5
使用babel-loader
与babel-core
可以使在打包时将es6
语法转化为es5
语法。安装后需要在webpack.config.js
里添加对应的配置信息。
npm i -s babel-loader babel-core
其中,正则表达式的部分不能使用i
来进行大小写的设置,设置exclude
可以忽略指定目录,设置include
可以仅打包指定目录,节省打包所需的时间。
module:{
rules:[
{
test:/\.js$/,
use:{loader:"babel-loader"},
exclude: /(node_modules|bower_components)/,
include : path.resolve(__dirname,'src')
},
]
}
2.处理css
文件
npm i -s css-loader style-loader
使用css-loader
和style-loader
可以处理css
文件,但需要注意的是,在use
数组中添加对应的loader
时引用顺序是从下往上的
3.给css
加上浏览器前缀
考虑兼容问题css
需要加上前缀才可以使用,需要安装postcss-loader
和autoperfixer
npm i -s postcss-loader autoprefixer
为了正确的使用postcss-loader
我们需要配置一个postcss.config.js
文件
postcss.config.js
module.exports = {
plugins: [
require('autoprefixer')({
browsers: ['last 5 versions']
})
]
}
4.处理@import
引入的css
文件
在loader
里给css-loader
设置参数autoperfixer:1
即可使@import
引入的文件添加浏览器前缀
{
loader:"css-loader",
options:{
importLoaders:1
}
}
5.处理less
文件
使用less-loader
可以处理less
文件,但同时在处理less
文件时,项目里也需要安装less
依赖
6.处理html
模板与ejs
模板
对于html
模板的处理,其实安装html-loader
就可以了,ejs
的话对应的是ejs-loader
,两者没有特别大的区别,只是前者在app.js
中以文本的形式插入进innerHTML
中,后者则是一个带参函数直接渲染页面里的数据。
6.处理图片及其他资源
使用file-loader
可以打包图片资源,但如果引用在模板里,会出现资源的路径问题。解决方法是在模板里使用如下语法
${ require(...path) }
打包图片资源时可以使用url-loader
并设置参数limit
使文件体积大于该数值的资源压缩。
对于图片资源还可以使用image-webpack-loader
直接压缩图片资源。
网友评论