当前位置: 首页 > news >正文

Vue3集成sass

安装依赖

pnpm add -D sass-embedded

配置全局变量

  • 新建文件 src/styles/variables.scss
  • 配置Vite 修改 vite.config.ts

variables.scss

$base-color: blue

vite.config.ts

// https://vite.dev/config/
export default defineConfig({plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url)) //相对路径别名配置,@代替src,用于打包时路径转换},},css: {preprocessorOptions: {// 引入公共scss变量scss: {// 引入 varibles.scss 这样就可以在全局中使用 varibles.scss中预定义的变量了// 给导入的路径最后加上 ;// as 后面是定义的环境变量//   如果写as * ,可以直接使用变量名,如:变量名//   如果不写as *, 默认文件名即:variables, 使用variables.变量名//   如果是as vars,则使用vars.变量名additionalData: '@use "@/assets/styles/variables" as *;',},},},
})

引入全局样式

  • 创建文件 src/assets/styles/reset.scsssrc/assets/styles/index.scss
  • 引入全局样式 main.ts

reset.scss

// 重置样式 https://www.npmjs.com/package/reset.css?activeTab=code
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {margin: 0;padding: 0;border: 0;font-size: 100%;font: inherit;vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {display: block;
}
body {line-height: 1;
}
ol, ul {list-style: none;
}
blockquote, q {quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {content: '';content: none;
}
table {border-collapse: collapse;border-spacing: 0;
}

index.scss

// 引入重置样式
@use 'reset';

main.ts

...
const app = createApp(App)
...
// 引入全局样式
import '@/assets/styles/index.scss'app.mount('#app')

使用测试

<template><div class="home"><h2>Home</h2>    </div>
</template><script setup lang="ts">
</script><style scoped lang="scss">
.home {h2 {color: $base-color;}
}
</style>

相关文章:

  • 【gpt生成-其二】以go语言为例,详细讲解 并发模型:线程/协程/ Actor 实现
  • sqoop的参数及初体验
  • RHCE 作业二(密钥登录实验)
  • 香港科技大学广州|先进材料学域金融科技学域博士招生宣讲会—天津大学专场!!!(暨全额奖学金政策)
  • 【LLM】Ollama:容器化并加载本地 GGUF 模型
  • 中国人寿财险广西分公司:金融助推乡村振兴全面发展
  • 如何改电脑网络ip地址完整教程
  • CS61A:SCHEME LIST
  • GitLab 提交权限校验脚本
  • 基于大模型的肛裂手术全流程预测与治疗方案研究报告
  • 部署私有gitlab网站
  • 相对论大师-记录型正负性质BFS/图论-链表/数据结构
  • 极狐GitLab 权限和角色如何设置?
  • 【 React 】重点知识总结 快速上手指南
  • AI智能健康小屋:未来健康管理的前沿阵地
  • 【C++游戏引擎开发】第21篇:基于物理渲染(PBR)——统计学解构材质与光影
  • 强化学习框架:OpenRLHF源码解读,模型处理
  • IOT项目——DIY Weather Station With ESP32
  • 几种Word转换PDF的常用方法
  • Linux学习笔记2
  • 经济日报刊文:如何破除“内卷式”竞争
  • 讲武谈兵|英国公布六代机最新渲染图,但研发面临多重难题
  • 具身智能资本盛宴:3个月37笔融资,北上深争锋BAT下场,人形机器人最火
  • 一季度提高两只医药基金股票仓位,中欧基金葛兰加仓科伦药业、百利天恒
  • 受贿超8.22亿元,新疆维吾尔自治区党委原副书记李鹏新一审被判死缓
  • 周继红当选中国泳协主席,曾为国摘得首枚奥运跳水金牌