一、安装流程
1、全局安装node-sass
npm install -g node-sass
2、在Vue项目中安装sass-loader和sass
npm install sass-loader sass --save-dev
3、配置webpack配置文件
module.exports = {
module: {
rules: [
{
test: /\.s[a|c]ss$/,
loader: 'sass-loader',
options: {
implementation: require('sass'),
sassOptions: {
fiber: require('fibers'),
},
},
},
],
},
};
二、安装遇到的问题及解决方案
1、node-sass无法安装
在安装node-sass过程中,可能会遇到node-sass无法安装的问题。出现这种问题的原因是官方默认的二进制文件在国内下载速度太慢,导致安装过程中超时。 解决方案: 1、使用npm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
2、使用cnpm安装
cnpm install -g node-sass --unsafe-perm
2、webpack配置的问题
在开发过程中,由于webpack的繁琐配置,通常会出现webpack无法调用sass-loader的情况。
解决方案:
1、检查webpack.config.js中的配置
2、如果有其他自定义配置,则需要逐步排除问题
三、使用VueSass的优势
1、使用变量统一管理样式
VueSass支持使用变量管理样式,让样式的修改更加简单。如果要进行大规模的样式修改,只需要在变量中修改即可,样式会自动同步更新。
// 定义sass变量
$mainColor: #333333;
// 使用sass变量
h1 {
color: $mainColor;
}
2、支持样式的嵌套写法
VueSass可以使用类似于CSS的嵌套样式写法,可以大大简化代码结构。
// 普通CSS写法
.container {
width: 100%;
.box {
margin: 10px;
}
}
// VueSass写法
.container {
width: 100%;
.box {
margin: 10px;
}
}
3、支持样式的继承和扩展
VueSass可以使用类似于CSS的继承和扩展方式,可以让样式的书写更加简单。
// Sass中使用继承
.container {
width: 100%;
}
.box {
@extend .container;
margin: 5px;
}
// Sass中使用扩展
.container {
width: 100%;
}
.box {
@extend .container;
margin: 5px;
&:hover {
background-color: #eee;
}
}
4、可使用函数和混合器
VueSass支持调用函数和混合器,可以让样式的书写更加灵活。
// 在Sass中定义函数和混合器
@function calcWidth($width) {
@return ($width / 2);
}
@mixin setSize($width, $height) {
width: $width;
height: $height;
}
// 在VueSass中调用函数和混合器
.box {
width: calcWidth(200px);
@include setSize(100px, 50px);
}