Vue2 uses scss, and introduces public scss style variables globally

安装node-sass、sass-loader、style-loader、sass-resources-loader

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

Configure sass-resources-loader entry file

in vue.config.js

const {
  defineConfig
} = require('@vue/cli-service');

module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    proxy: { //代理配置
      //...
  },
  chainWebpack: config => {
    // sass-resources-loader 公共样式文件配置,可全局使用变量
    const oneOfsMap = config.module.rule('scss').oneOfs.store
    oneOfsMap.forEach(item => {
      item
        .use('sass-resources-loader')
        .loader('sass-resources-loader')
        .options({
          // 写入定义基础样式的scss文件路径
          resources: [
            './src/assets/styles/common.scss',
            
          ]
        })
        .end()
    })
  },

});

Create a new style file under assets, and create a new common.scss style file.

//./src/assets/styles/common.scss ---- common style file

$price-color:#8B0000;

Inside the component use:

Add lang="scss" to the style tag

//组件内使用
<style lang="scss" scoped>

//样式变量使用
.price {
  color: $price-color;
}
</style>

Guess you like

Origin blog.csdn.net/CSSAJBQ_/article/details/129790139