【问题标题】:Overriding vuetify sass variables which use another variable覆盖使用另一个变量的 vuetify sass 变量
【发布时间】:2021-01-24 21:49:06
【问题描述】:

我的 variables.scss 文件已设置并按照文档工作。但是,如果我尝试覆盖依赖于另一个变量的变量,则会引发错误。

我想改变

$container-padding-x: $grid-gutter / 2 !default;

$container-padding-x: $grid-gutter !default;

但是,如果不指定 $grid-gutter 则我无法做到这一点,而 $grid-gutter 又依赖于 $spacer 所以我最终不得不定义所有 3 个。这是预期的行为吗?

这是我得到的构建错误...

Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Undefined variable.
  ╷
6 │ $container-padding-x: $grid-gutter;
  │                       ^^^^^^^^^^^^
  ╵
  src/sass/variables.scss 6:23  @import
  src/sass/global.scss 1:9      root stylesheet

【问题讨论】:

    标签: vuetify.js


    【解决方案1】:

    删除 !default。

    !default 用于防止 vuetify 覆盖您的修改,这意味着当您更改一个 sass 变量时,它将在 vuetify 之前设置,当调用 vuetify 变量时,!default 将说明该变量是否已设置,忽略它。

    $container-padding-x: $grid-gutter

    【讨论】:

    • 无论有没有 !default,它对我来说都很好。我遇到的问题是我还必须同时指定 $grid-gutter 和 $spacer 变量,否则会出现构建错误。我在原始问题中添加了构建错误。我似乎也无法使用文档中显示的任何一种方法来覆盖任何 $headers ,所以我想知道我的构建设置是否有问题?覆盖 $headers 时我没有收到错误,只是什么都不做。
    • 您使用的是哪个 vuetify 和 vuetify-loader 版本?
    • "vuetify-loader": "^1.7.0" "vuetify": "^2.4.3" 我意识到 $headers 的问题,所以忽略它。我的问题实际上是是否必须指定 $grid-gutter 才能将其用作值
    • 不应该。我正在使用 Vuetify,我分配了你想要的变量并且它可以工作,因为在运行时变量已经定义了
    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2020-09-30
    • 2013-06-06
    • 1970-01-01
    • 2020-06-14
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多