[Vuejs] 在vue各个组件中应用全局scss变量

需要安装一个插件:sass-resources-loader

1、执行安装命令:

npm i sass-resources-loader --save-dev

2、修改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', // 为了scss全局变量能在vue文件中使用
      options: {
        resources: path.resolve(__dirname, './../src/assets/scss/_var.scss')
      }
    }),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

3、在_var.scss中定义变量:

// 自定義主題色
$theme-color: #008dfa;

4、在vue组件中使用自定义的变量:

<style lang="scss">
.site-wrapper-main{
   box-shadow: inset 0px 0px 1px 0px $theme-color;
}
</style>

 

posted on 2019-05-17 16:31  晏过留痕  阅读(8658)  评论(0编辑  收藏  举报