Sass 官网
安装插件
注意 sass-loader
版本没设太高,否则会报错 Syntax Error: TypeError: this.getOptions is not a function
npm i sass sass-loader@10 -D
创建 Sass 文件
variables.module.scss
。注意这里是 module.scss
:
- 否则报错
Can't find stylesheet to import
; - 前缀.module,被认为是一个CSS模块文件,导入时会返回一个相应的模块对象;
$testBg01: red;
$testBg02: blue;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
:export {
testBg01: $testBg01;
testBg02: $testBg02;
}
vue 中使用
- 代码第 9 行,在
js
中引入为JavaScript
变量; - 代码第 19 行,在
css
中引入为CSS
变量;
<template>
<div>
<div class="box box01"></div>
<div class="box box02"></div>
</div>
</template>
<script>
import variables from '../assets/variables.module.scss';
export default {
mounted() {
console.log('variables', variables);
}
}
</script>
<style lang="scss" scoped>
@import '../assets/variables.module.scss';
.box {
display: inline-block;
width: 100px;
height: 100px;
}
.box01 {
background: $testBg01;
}
.box02 {
background: $testBg02;
}
</style>
控制台输出