如何使用 sass 在 vuejs3/vite 中使用

how to use sass using in vuejs3/vite

我从 vite / vuejs 3 开始

在使用 npm install -D sass 安装 sass 之后,我尝试将我的 _variables.js 文件添加到 vite.config.js

css: {preprocessorOptions: {scss: {additionalData: `@import" ./src/css/_variables.scss ";`,},},},

没用!

它也适用于 vue.config

css: {
     loaderOptions: {
       sass: {
         sassOptions: {
            prependData: `@import" @ / css / _variables.scss ";`,
         }
       }
     }
   },

在此之后尝试导入文件 main.js import "./css/_variables.scss"

不幸的是,我的组件找不到变量,错误在哪里

这是我的工作设置,从 vite docs 和命令 yarn add -D sass

得到它
// package.json
{
  "dependencies": {
   ...
    "vue": "^3.0.5"
  },
  "devDependencies": {
    ...
    "sass": "^1.32.11",
    "vite": "^2.2.3"
  }
}
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()]
})
// App.vue
<template>...</template>
<script>...</script>

<style lang="scss">
@import "./assets/style.scss";
</style>
// style.scss
[data-theme="dark"] {
  --bg-color1: #121416;
  --font-color: #f4f4f4;
}
[data-theme="light"] {
  --bg-color1: #f4f4f4;
  --font-color: #121416;
}
...
body {
  background-color: var(--bg-color1);
  color: var(--font-color);
}

我的 vue.config.js 很干净 - 没什么特别的。

Vite 有点不同

    import { defineConfig } from 'vite'
    
    export default defineConfig({
      css: {
        preprocessorOptions: {
          scss: {
            additionalData: `
              @import "./src/styles/_animations.scss";
              @import "./src/styles/_variables.scss";
              @import "./src/styles/_mixins.scss";
              @import "./src/styles/_helpers.scss";
            `
          }
        }
      }
    })

解决方案:

  1. "npm add -D sass" ---------- (-g flag 现在将无法在 vite 中工作 16/02/2022)。 或者,

  2. "yarn add -D sass" - 运行 这些注释在你的命令行中。

  3. 在 main.js 文件中“import './style.scss'”将不起作用,所以我添加了我的 sass 文件在 html

对于 Vue3,如文档中所述:https://vitejs.dev/guide/features.html#css-pre-processors

您只需添加

npm add -D sass

并在脚本标签中使用

<style lang="scss">
// OR
<style lang="sass">