1.在vue-cli中应用scss全局变量?
首先引入scss:
npm install --save-dev sass-loader
npm install --save-dev node-sass
配置sass全局变量需要安装一个开发插件:sass-resources-loader
npm i sass-resources-loader --save-dev
然后修改vue-cli的build/utils.js,找到scss的加载设置:
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
修改为:
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass').concat({
loader:'sass-resources-loader',
options:{
resources:path.resolve(__dirname,'./../src/assets/css/global.scss')
}
}),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
其中path.resolve需要传入待引入的scss文件,我的在./../src/assets/css/global.scss,__dirname代表当前目录
保存后需要重启开发命令:npm run dev
完成!
在global.scss定义变量:
$screen-lg-min: 992px;
$screen-md-min: 768px;
$screen-md-max: 991px;
$screen-sm-max: 767px;
使用:
<style lang="scss" scoped>
@media screen and (min-width: $screen-lg-min) {
.header-menu {
display: none;
}
}
@media screen and (min-width: $screen-md-min) and (max-width: $screen-md-max) {
.header-menu {
display: none;
}
}
@media screen and (max-width: $screen-sm-max) {
}
</style>