webpack4.0 入门实践教程(5)
我们在写 css 时不免要考虑到浏览器兼容问题,如 transform
属性,需要添加浏览器前缀以适配其他浏览器。故使用到 postcss-loader
这个 loader, 下面则是相关的配置
webpack.config.js
const MiniCssExtractPlugin = require('mini-css-extract-plugin') module.exports = { // ... module: { rules: [ { test: /\.css$/, include: [path.resolve(__dirname, 'src')], use: [ MiniCssExtractPlugin.loader, 'css-loader', { loader: 'postcss-loader', options: { plugins: [require('autoprefixer')] } } ] } ] }, plugins: [ //... new MiniCssExtractPlugin({ filename: '[name].css', chunkFilename: '[id].css' }) ] }
打包 less 文件
开发中通常会用到一门预处理语言,这里以 less
为例,通过 less-loader
可以打包 less 为 css 文件
npm install less less-loader -D
新建 src/assets/style/index.less
, 并且在 src/index.js
中引入 import './assets/style/index.less'
配置 webpack.config.js
const MiniCssExtractPlugin = require('mini-css-extract-plugin') module.exports = { module: { rules: [ // ... { test: /\.less$/, use: [ MiniCssExtractPlugin.loader, 'css-loader', { loader: 'postcss-loader', options: { plugins: [require('autoprefixer')] // 添加css中的浏览器前缀 } }, 'less-loader' ] } ] } //... }
执打包命令后就可以发现 index.less
中写的样式会和 color.css
一样被打包进 main.css
中。
webpack@v4 升级踩坑: 关于使用 mini-css-extract-plugin
的注意点。
打包图片
npm install file-loader url-loader -D
file-loader:可以用于处理很多类型的文件,它的主要作用是直接输出文件,把构建后的文件路径返回。
url-loader:如果图片较多,会发很多 http 请求,会降低页面性能。 url-loader
会将引入的图片编码,生成 dataURl。相当于把图片数据翻译成一串字符。再把这串字符打包到文件中,最终只需要引入这个文件就能访问图片了。当然,如果图片较大,编码会消耗性能。因此 url-loader
提供了一个 limit 参数,小于 limit 字节的文件会被转为 DataURl,大于 limit 的还会使用 file-loader
进行 copy。
- url-loader 可以看作是增强版的 file-loader。
- url-loader 把图片编码成 base64 格式写进页面,从而减少服务器请求。
module.exports = { module: { rules: [ // ... { test: /\.(png|jpg|gif)$/, use: [ { loader: 'url-loader', options: { outputPath: 'images/', //输出到images文件夹 limit: 500 //是把小于500B的文件打成Base64的格式,写入JS } } ] } ] } //... }
内容版权声明:除非注明,否则皆为本站原创文章。