vue.js 3.2.20:安裝使用scss/sass(sass-loader@10.2.0)


一,安裝scss/sass:

1,安裝插件:
liuhongdi@lhdpc:/data/vue/scssdemo$ vue add style-resources-loader
 
📦  Installing vue-cli-plugin-style-resources-loader...
 
 
added 1 package in 5s
 
14 packages are looking for funding
  run `npm fund` for details
✔  Successfully installed plugin: vue-cli-plugin-style-resources-loader
 
? CSS Pre-processor? (Use arrow keys)
❯ SCSS
  SASS
  Stylus
  Less
 
在詢問CSS Pre-processor處選擇默認的SCSS並回車
2,為項目安裝sass等第三方庫支持:
liuhongdi@lhdpc:/data/vue/scssdemo$ npm install -D sass-loader@10.2.0 node-sass sass
 
added 99 packages in 3m
 
14 packages are looking for funding
  run `npm fund` for details
說明:sass-loader如果不指定一個較低的版本,
默認安裝高版本時會報沖突
sass-loader選擇10這個版本是為了對webpack版本的兼容:
查看當前項目的webpack版本:
iuhongdi@lhdpc:/data/vue/scssdemo$ npm list webpack
scssdemo@0.1.0 /data/vue/scssdemo
├─┬ @vue/cli-plugin-babel@4.5.13
│ ├─┬ babel-loader@8.2.2
│ │ └── webpack@4.46.0 deduped
│ ├─┬ cache-loader@4.1.0
│ │ └── webpack@4.46.0 deduped
│ ├─┬ thread-loader@2.1.3
│ │ └── webpack@4.46.0 deduped
│ └── webpack@4.46.0
...
3,安裝完成后查看安裝的第三方庫:
liuhongdi@lhdpc:/data/vue/scssdemo$ npm list sass-loader
scssdemo@0.1.0 /data/vue/scssdemo
└── sass-loader@10.2.0
 
liuhongdi@lhdpc:/data/vue/scssdemo$ npm list sass
scssdemo@0.1.0 /data/vue/scssdemo
├─┬ sass-loader@10.2.0
│ └── sass@1.42.1 deduped
└── sass@1.42.1
 
liuhongdi@lhdpc:/data/vue/scssdemo$ npm list node-sass
scssdemo@0.1.0 /data/vue/scssdemo
├── node-sass@6.0.1
└─┬ sass-loader@10.2.0
  └── node-sass@6.0.1 deduped
查看package.json
"dependencies": {
    "core-js": "^3.6.5",
    "vue": "^3.0.0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^7.0.0",
    "node-sass": "^6.0.1",
    "sass": "^1.42.1",
    "sass-loader": "^10.2.0"
  },

說明:劉宏締的架構森林是一個專注架構的博客,

網站:https://blog.imgtouch.com
本文: https://blog.imgtouch.com/index.php/2023/05/28/vue-js-3-2-20-an-zhuang-shi-yong-scss-sass-sassloader-10-2/

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

說明:作者:劉宏締 郵箱: 371125307@qq.com

二,編寫代碼:

 Home.vue
<template>
<div class="main" style="">
  <div class="top">
  <span @click="changeColor('red')" >紅色</span>
  <span @click="changeColor('yellow')" >黃色</span>
  <span @click="changeColor('blue')" >藍色</span>
  <span @click="changeColor('green')" >綠色</span>
    </div>
  <div class="demo">
  </div>
</div>
</template>

<script>
export default {
  name: "Home",
  setup() {
    const changeColor = (color) => {
      document.getElementsByTagName('body')[0].style.setProperty('--div_bg', color);
    };
    return {
      changeColor,
    }
  },
}
</script>

<style lang="scss" scoped>
/*$bg: red;*/
$bg: var(--div_bg, #ff0000);

.main {
   width:100vw;
   height:100vh;
   background: #eeeeee;
   .top {
     margin-top: 0px;
     width:500px;
     height:30px;
     span {
       margin-top: 10px;
       float: left;
       margin-left: 30px;
       background: #2c3e50;
       border-radius: 5px;
       color: #ffffff;
       width:50px;
       height: 30px;
       line-height: 30px;
     }
   }

  .demo {
    width:100px;
    height:100px;
    margin-top: 20px;
    margin-left: 30px;
    border-radius: 10px;
    background-color: $bg;
  }
}
</style>

三,測試效果

 

四,查看vue.js的版本

liuhongdi@lhdpc:/data/vue/scssdemo$ npm list vue
scssdemo@0.1.0 /data/vue/scssdemo
├─┬ @vue/cli-plugin-babel@4.5.13
│ └─┬ @vue/babel-preset-app@4.5.13
│   └── vue@3.2.20 deduped
└─┬ vue@3.2.20
  └─┬ @vue/server-renderer@3.2.20
    └── vue@3.2.20 deduped 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM