安装sass
npm install sass -Dnpm install sass-loader -Dnpm install node-sass -D
安装normalize.css初始化样式
npm install --save normalize.css
新建style目录保存各种样式
index.scss中组织这些样式,并编写全局样式
@import "./normalize.css";@import "./element-ui.scss";@import "./transition.scss";@import "./variable.scss";@import "./theme.scss";body {margin: 0;padding: 0;box-sizing: border-box;background-color: $color-background-base;}
main.js中引入index.scss
import {createApp} from 'vue'import App from './App.vue'import router from '@/router';import store from '@/store';import '@/assets/style/index.scss'const app = createApp(App)app.use(router)app.use(store)app.mount('#app')
vite.config.js添加全局scss变量文件
import {defineConfig} from 'vite'import vue from '@vitejs/plugin-vue'import path from 'path';// https://vitejs.dev/config/export default defineConfig({alias: {'@': path.resolve(__dirname, 'src')},plugins: [vue()],css: {preprocessorOptions: {scss: {additionalData: `@import "@/assets/style/variable.scss";`}}}})
Home.vue使用全局变量
<template><h1>这是首页</h1><button @click="valueAdd">{{ value }}</button></template><script setup>import store from '@/store/index'import {computed} from "vue";const value = computed(() => store.state.count)const valueAdd = () => {store.commit('add')}</script><style scoped lang="scss">h1 {color: $color-primary;}</style>
