【发布时间】:2022-08-16 22:17:04
【问题描述】:
Nuxt 3 第一个候选版本即将推出,所以我正在使用 Nuxt 3 开始一个全新的项目。我已经面临一个常见问题,我正要问如何解决它。但我自己设法做到了,所以我提出了一个自我回答的问题,以帮助未来可能面临同样问题的人。
如何在我的 vue 组件中使用全局 Sass(或 Scss)变量?我在其他帖子中看到我们可以使用 @nuxtjs/style-resources 包,但它看起来像是 Nuxt 2 包。而且我认为在 Nuxt 3 中可能有更好的方法来做到这一点不添加依赖项喜欢style-resources?
我所说的“全局变量”是一个 SASS 变量,我希望能够在我的任何 Vue 组件中使用 SASS 变量,而不必包含 SASS 文件。
我想要的是
(鉴于我已经安装了sass 包)
// @/assets/style/main.sass
$grey-bg: #CCC
$light-blue: #c6d8f5
<!-- app.vue -->
<template>
<div>
<NuxtWelcome />
</div>
</template>
<style lang=\"sass\">
body
background-color: $grey-bg
color: $light-blue
</style>
我已经尝试过的
我试图将我的 sass 文件包含在 Nuxt config CSS 属性中,如下所示:
// nuxt.config.ts
import { defineNuxtConfig } from \"nuxt3\"
export default defineNuxtConfig({
css: [\"@/assets/style/global.sass\"]
})
它的工作方式是我的global.sass 文件中的样式将应用于我的整个应用程序。但是,如果我从 Vue 组件引用我的 SASS 文件中的变量,则构建失败并出现以下错误,这不起作用:
Plugin: vite:css. Error: Undefined variable.