vue使用scss,并且全局引入公共scss样式变量

要如何在我们的vue项目中全局引入scss文件呢?

  1. main.js可以直接import css文件,而不可以直接import scss文件。
  2. 在index.html中link引入的话,不起作用。
  3. 公共样式可以写在app.vue这个父组件的style标签中,这样我们写的子组件就能继承这些公共样式,但是!!!我们自定义的scss的变量继承不了!!

如果我们想使用公共的scss样式变量(比如app的主题颜色),我们就只能是每写一个.vue文件都要在style标签里面@import “global.scss”这个公共scss样式文件,但是这样做,会很麻烦。

(上述情况,less同sass一样,存在这些问题,但是less没有以下解决办法,sass有。)

但也有办法解决,步骤如下:
1.安装node-sass、sass-loader、style-loader

npm install node-sass --save-dev
npm install sass-loader --save-dev
npm install style-loader --save-dev   

2.安装sass-resources-loader

cnpm install sass-resources-loader --save-dev
  1. 修改build中的utils.js
将
scss: generateLoaders('sass')
修改成:
    scss: generateLoaders('sass').concat(
      {
        loader: 'sass-resources-loader',
        options: {
          resources: path.resolve(__dirname, '../src/assets/global.scss')
        }
      }
    )

可知,我是在assets中创建了一个global.scss 作为公共样式文件。
最后在vue组件中的style标签中添加lang="scss",就ok了。这样我们就实现了全局引入scs

一定注意!!!路径,仔细看自己项目的路径

resources: path.resolve(__dirname, '../src/common/style/common.scss')

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值