【发布时间】:2022-01-10 17:04:40
【问题描述】:
我正在尝试将 Vue2+Vuetify 应用程序从 Vue-CLI/Webpack 迁移到 Vite。该应用程序有几个 SCSS 文件,main.scss 和 variables.scss,后者由前者导入。
main.scss
@import 'variables';
// global style rules (omitted)
变量.scss
// override some Vuetify variables and defined some variables of my own, e.g.
// Vuetify default is 48px
$data-table-mobile-row-min-height: 32px;
// Increase default height by 10px
// https://vuetifyjs.com/en/api/v-date-picker/#sass-variables
$date-picker-table-height: 252px;
main.scss是在根组件中导入的,也就是说:
-
main.scss中的规则适用于每个组件 -
variables.scss中的变量可以在任何组件中引用,无需任何额外的导入 - Vuetify 定义的变量可以在任何组件中引用,无需任何额外的导入
-
variables.scss中的变量会覆盖同名的 Vuetify 变量
但是,在迁移到 Vite 之后,只有 (1) 仍然有效。通过将以下内容添加到vite.config.js
export default defineConfig({
// other config omitted
css: {
preprocessorOptions: {
scss: {
// Make the variables defined in these files available to all components, without requiring an explicit
// @import of the files themselves
additionalData: `@import "./src/styles/variables"; @import "vuetify/src/styles/settings/_variables";`
},
},
},
});
但是,情况仍然是 (4) 不再有效。
据我所知,使用 Vue-CLI 构建时,vuetify-loader 负责此行为,但不清楚在使用 Vite 构建时如何覆盖 Vuetify 变量?
【问题讨论】:
标签: vue.js sass vuejs2 vuetify.js vite