【问题标题】:When importing a file with @use then: Error Undefined Mixin使用 @use 导入文件时:Error Undefined Mixin
【发布时间】:2021-02-25 17:59:36
【问题描述】:

我有一个入口文件:

@use '_mixins';
@use '_default';

现在,当我在 default.scss 中使用 mixin 时,它会抛出错误:

Dart Sass 失败并出现以下错误:错误:未定义的 mixin。

由于鼓励@use,我不明白为什么这不起作用。如果我像过去一样写@import,效果会很好:

@import '_mixins';
@import '_default';

这样一切都很好,花花公子。

我如何必须使用@use 并且仍然拥有一切可用的东西?

【问题讨论】:

    标签: sass


    【解决方案1】:

    这可能是因为使用新规则@use 对您构建项目结构的方式有很大影响。使用@use会显着改变它:

    1. 使用@import,您可以添加一个文件,然后 mixins/vars/modules 就可以在以后加载的每个 sass 文件中使用。

    2. 使用@use,您必须将您需要的特殊 sass 文件(即“_mixins”)直接加载到要直接使用它的文件中......而不是主文件。 (是的:将 mixins/functions/variables-files 加载到您要使用它们的每个部分文件是编写 sass 的新预期方式。

    3. 还有一点要指出您使用@use:如果您通过@use 'mixins 加载,则必须在单独的命名空间@include mixins.yourMixinYouCall 中调用文件中的mixin。如果你想在没有分隔命名空间的情况下加载 mixins,你可以这样做:@use 'mixins' as *

    这种更改为单独的命名空间有一些优势。但这确实是一个非常大的影响,也是一个关于构建 sass 文件的新方法的讨论非常激烈的主题。

    我们这周有这个,在发布两次之前,你可以看看这个帖子:

    The @use feature of Sass

    【讨论】:

    • 所以它的工作方式类似于各种 js 导入风格。说实话不是粉丝。感谢您清理一切。
    猜你喜欢
    • 2022-01-16
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2021-07-11
    • 2021-02-18
    • 2014-09-19
    • 2014-05-23
    相关资源
    最近更新 更多