vue-cli3引入sass(.scss)样式管理、sass-resources-loader全局变量

vue-cli3引入sass(.scss)样式管理、sass-resources-loader全局变量

指南:Sass基础教程 Sass快速入门 Sass中文手册 | Sass中文网

1、安装sass、sass-resources-loader

npm install -g sass
npm install --save-dev sass-resources-loader

2、src/assets下新建文件夹styles,用于存放样式文件,新建2个scss文件:

  • vars.scss(自定义基础变量,全局生效)
/* 使用 $ 定义变量 */

$primary: #377dff;
$sidebar-submenu-shadow: 5px 0 25px rgba(141, 152, 167, 0.35);
$word-font: 'Montserrat-SemiBold', sans-serif;
  • mixins.scss(自定义封装样式,可引入到文档中)
/* 使用 @mixin 封装样式 */

@mixin title-h1 {
    font-size: 14px;
    font-weight: 600;
    font-family: $word-font;  /* 样式中可应用变量 */
}
@mixin total-num {
    font-size: 28px;
    font-weight: 700;
    font-family: 'Montserrat-Regular';  /* 样式中可应用字体 */
}

3、将以上定义轻松应用到全局scss样式中

<style lang="scss">  /* 标记语言为scss */
div {
    box-shadow: $dark-shadow;  /* 直接书写变量 */
    margin: 0;
    
    h1 {
        @include title-h1;  /* 使用 @include 引入混合样式 */
        padding: 0;
    }
}
</style>

4、写入配置文件vue.config.js,否则定义无法全局生效

module.exports = {
    chainWebpack: config => {
        const oneOfsMap = config.module.rule('scss').oneOfs.store
        oneOfsMap.forEach(item => {
            item
                .use('sass-resources-loader')
                .loader('sass-resources-loader')
                .options({
                    // 写入定义基础样式的2个scss文件路径
                    resources: [
                      './src/assets/styles/vars.scss',
                      './src/assets/styles/mixins.scss',
                    ]
                })
                .end()
        })
    },
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
0:12:54.816 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 10:12:54.821 SassError: Undefined variable: "$u-type-primary". 10:12:54.821 on line 206 of D:\ideaWorkSpace\ehl-wx\node_modules\uview-ui\components\u-badge\u-badge.vue 10:12:54.826 >> background-color: $u-type-primary; 10:12:54.833 --------------------^ 10:12:54.839 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 10:12:54.844 SassError: Undefined variable: "$u-type-primary". 10:12:54.849 on line 309 of D:\ideaWorkSpace\ehl-wx\node_modules\uview-ui\components\u-checkbox\u-checkbox.vue 10:12:54.856 >> background-color: $u-type-primary; 10:12:54.860 ---------------------^ 10:12:54.865 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 10:12:54.871 SassError: Undefined variable: "$u-type-primary". 10:12:54.876 on line 350 of D:\ideaWorkSpace\ehl-wx\node_modules\uview-ui\components\u-icon\u-icon.vue 10:12:54.880 >> color: $u-type-primary; 10:12:54.885 ----------^ 10:12:54.889 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 10:12:54.894 SassError: Undefined variable: "$u-type-primary". 10:12:54.894 on line 432 of D:\ideaWorkSpace\ehl-wx\node_modules\uview-ui\components\u-button\u-button.vue 10:12:54.900 >> border-color: $u-type-primary; 10:12:54.905 ----------------^ 10:12:54.909 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js): 10:12:54.914 SassError: Undefined variable: "$u-type-primary". 10:12:54.919 on line 721 of D:\ideaWorkSpace\ehl-wx\node_modules\uview-ui\components\u-picker\u-picker.vue 10:12:54.925 >> color: $u-type-primary;解决
07-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值