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

文章讲述了如何在Vue项目中安装和配置node-sass、sass-loader、style-loader和sass-resources-loader。通过npm安装这些依赖后,在vue.config.js中配置sass-resources-loader,设置公共scss文件路径,以便全局使用变量。此外,还提及了devServer的代理配置以及在组件内部如何使用定义的样式变量。

安装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

配置sass-resources-loader入口文件

在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()
    })
  },

});

在assets下新建style文件,并新建common.scss样式文件。

//./src/assets/styles/common.scss ----公共样式文件

$price-color:#8B0000;

组件内使用:

style标签添加 lang="scss"

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

//样式变量使用
.price {
  color: $price-color;
}
</style>
Vue2全局引入 SCSS 变量样式,可按以下步骤操作: 1. **安装相关依赖**:安装 `node-sass`、`sass-loader` 和 `sass` 依赖,命令如下: ```bash npm install node-sass -d npm install sass-loader -d npm install sass -d ``` 2. **创建存放全局变量的文件**:在静态目录下创建存放全局变量的文件,如 `vars.scss`,并在其中定义变量,示例如下: ```scss // vars.scss $component-bgcolor: #f8f8fa; ``` 3. **定义索引文件(可选)**:定义一个统一引入所有项目中 SCSS 文件的索引文件 `index.scss`,示例如下: ```scss // index.scss @import './vars.scss'; ``` 4. **设置 `vue.config.js` 中的配置**:在 `vue.config.js` 中添加如下配置,其中 `@/assets/style/common.scss` 是要全局引用SCSS 文件的路径: ```javascript // vue.config.js module.exports = { // ... other config css: { loaderOptions: { sass: { prependData: `@import "@/assets/style/common.scss";` } } }, // ... other config } ``` 5. **重启项目**:完成上述配置后,重启项目,即可在任何组件中直接使用 SCSS 中定义的变量、混合器等。 示例使用: ```vue <template> <div id="app"> <h2>配置全局 scss 变量</h2> <div class="box1">哈哈哈</div> </div> </template> <script> export default { name: 'App', } </script> <style lang="scss" scoped> .box1 { // 直接使用 scss 变量 width: $component-bgcolor; height: $component-bgcolor; padding: 10px; border-radius: 10px; background-color: $component-bgcolor; color: $fontColor; } </style> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值