面试题答案
一键面试- 安装相关依赖:
- 安装
less
、less - loader
:npm install less less - loader --save - dev
。less
是LESS样式表语言的解析器,less - loader
用于在Webpack中处理LESS文件。 - 安装
sass - loader
、node - sass
:npm install sass - loader node - sass --save - dev
。node - sass
是SASS样式表语言的解析器,sass - loader
用于在Webpack中处理SASS文件。
- 安装
- 配置Webpack的
module.rules
:module: { rules: [ { test: /\.less$/, use: [ 'style - loader', 'css - loader', 'less - loader' ] }, { test: /\.s[ac]ss$/, use: [ 'style - loader', 'css - loader', 'sass - loader' ] } ] }
test
字段:用于匹配对应的文件扩展名。/\.less$/
匹配所有.less
文件,/\.s[ac]ss$/
匹配所有.sass
和.scss
文件。use
数组:定义了从右到左(从下到上)的loader链。less - loader
/sass - loader
:将LESS/SASS文件编译成CSS。css - loader
:处理CSS文件中的@import
和url()
等,将CSS文件转化为JavaScript模块。style - loader
:将CSS通过<style>
标签插入到HTML页面中。
- 优化打包体积:
- 压缩CSS:安装
css - minimizer - webpack - plugin
:npm install css - minimizer - webpack - plugin --save - dev
。 在Webpack配置文件的optimization.minimizer
中添加:
const CssMinimizerPlugin = require('css - minimizer - webpack - plugin'); module.exports = { optimization: { minimizer: [ new CssMinimizerPlugin() ] } }
CssMinimizerPlugin
会在Webpack打包过程中压缩CSS代码,减少打包后的体积。- Tree - shaking CSS:在
package.json
中添加sideEffects
字段:
这告诉Webpack哪些文件有副作用(如样式文件一般有副作用),Webpack可以更好地进行Tree - shaking,去除未使用的CSS代码,进一步优化体积。{ "sideEffects": false }
- 压缩CSS:安装