本文介绍了如何使用webpack解析ES6、JSX、CSS等资源
解析ES6
解析es6需要使用到babel,同时需要使用babel-loader
首先,先配置babel配置文件.babelrc:
1 | // .babelrc |
.babelrc文件中的plugins字段,可以理解为一个plugin对应一个功能,
而presets则是多个plugin的集合
接着需要在webpack.config.js中增加相关loader的配置:
1 | // webpack.config.js |
然后安装相关依赖:
1 | npm i @babel/core @babel/preset-env babel-loader -D |
安装完毕重新编译下即可。
解析React JSX
首先,先配置babel配置文件.babelrc:
1 | // .babelrc |
接着在webpack.config.js中修改babel-loader的校验规则:
1 | // webpack.config.js |
然后安装相关依赖:
1 | npm i @babel/preset-react -D |
安装完毕即可使用react的jsx相关语法。
解析CSS
解析CSS需要用到两个loader:
css-loader加载css文件,并转换为commonJS对象style-loader将样式通过<style>标签插入到head中
在webpack.config.js中修改loader配置:
1 | // webpack.config.js |
需要注意的是,loaders链式调用,
从右到左,所以先写style-loader,再写css-loader
然后安装相关依赖:
1 | npm i style-loader css-loader -D |
解析Less、Sass
Less和Sass的解析步骤与CSS类似,只需要多一步将Less/Sass转换为CSS即可。
配置如下:
1 | // webpack.config.js |
注意,less-loader需要一同安装less;sass-loader需要一同安装node-sass
解析图片、字体等
解析图片、字体等文件,可使用file-loader或url-loader。
url-loader底层也是调用的file-loader。
在使用上,url-loader可以将小资源以Base64的方式编码到文件中,减少文件数,使用方法如下:
1 | // webpack.config.js |