美文网首页
vue使用scss,并且全局引入scss

vue使用scss,并且全局引入scss

作者: Lucy_Lucy | 来源:发表于2018-02-24 18:05 被阅读0次

    要如何在我们的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了。这样我们就实现了全局引入scss。

    相关文章

      网友评论

          本文标题:vue使用scss,并且全局引入scss

          本文链接:https://www.haomeiwen.com/subject/rnkcxftx.html