要在 Vue 3 中使用 SCSS(Sass 的一个子集),你需要安装相应的依赖,并对项目进行一些配置。下面是详细的步骤:
步骤 1: 安装依赖
首先,你需要安装 sass
和 vue-loader
(如果你使用的是 Vue CLI)以及 vite-plugin-vue2
或 vite-plugin-vue3
(如果你使用的是 Vite)。这里我们假设你使用的是 Vite 构建工具。
打开终端并运行以下命令以安装所需的依赖包:
npm install -D sass
复制
步骤 2: 配置 Vite
在src文件下新建一个文件夹叫做styles:
在文件夹下创建三个文件
index.scss
主要用来引用其他文件
reset.scss
用来清除默认的样式,这里给出一个,模板如下:
*, *:after, *:before { box-sizing: border-box; outline: none; } 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 { font: inherit; font-size: 100%; margin: 0 ; padding: 0; vertical-align: baseline; border: 0; } 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; &:before, &:after { content: ''; content: none; } } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -.5em; } sub { bottom: -.25em; } table { border-spacing: 0; border-collapse: collapse; } input, textarea, button { font-family: inhert; font-size: inherit; color: inherit; } select { text-indent: .01px; text-overflow: ''; border: 0; border-radius: 0; -webkit-appearance: none; -moz-appearance: none; } select::-ms-expand { display: none; } code, pre { font-family: monospace, monospace; font-size: 1em; }
复制
variable.scss
用来配置全局属性
步骤3:配置 Vite
对于 Vite 项目,你需要在 vite.config.js
文件中配置 CSS 预处理器。如果你还没有这个文件,可以创建一个。
在项目根目录下创建或编辑 vite.config.js
文件,并添加以下内容:
export default defineConfig((config) => { css: { preprocessorOptions: { scss: { javascriptEnabled: true, additionalData: '@import "./src/styles/variable.scss";', }, }, }, });
复制