首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >@使用在Sass中不工作的方法导入变量,但@import正在工作

@使用在Sass中不工作的方法导入变量,但@import正在工作
EN

Stack Overflow用户
提问于 2022-07-30 02:04:06
回答 3查看 204关注 0票数 1

我在文件_variables.scss中声明了一个sass变量。当我使用@use导入该文件时,当编译声明为" error : undefined“时会出现一个错误。但是,如果我使用@import,那么一切都编译得很好。

这里是导入的第一个文件

代码语言:javascript
运行
复制
//_variables.scss
$primaryColor: rgba(199, 26, 113, 0.747);

这是正在进行导入的文件。

代码语言:javascript
运行
复制
//styles.scss
@use 'variables';

header {
background: $primaryColor;
}

编译时,返回“错误:未定义变量”。但是,如果我将“use”改为“import”,它就能正常工作。

为什么“导入”起作用,而“使用”不起作用?

EN

回答 3

Stack Overflow用户

发布于 2022-07-30 02:35:53

使用下划线_ in sass仅仅意味着当Sass看到这些文件时,它将不会将它们处理为CSS文件。

默认情况下,分部要求将其导入另一个文件,该文件将不可避免地被处理到CSS中,以便输出。而不是使用@use

票数 0
EN

Stack Overflow用户

发布于 2022-07-31 21:47:54

尝尝这个。我的SASS文件夹中有一个名为“文摘”的目录。在该文件夹中,我创建一个index.scss文件。在该索引文件中,我有以下内容

代码语言:javascript
运行
复制
@forward "config";
@forward "variables";
@forward "named-colors";
@forward "hsl";
@forward "maps";
@forward "mixins";
@forward "reasonable-colors";

这些文件中的每一个都是我的Sass文件中的一个部分"_variables“,我想使用所有这些变量和混合文件,我把它放在顶部

代码语言:javascript
运行
复制
@use '../abstracts' as *

这样,所有的变量都可以使用。当然,您的文件夹结构可能有所不同。在抽象文件夹之后,我有基本文件、布局、模块、页面和主题的文件夹。其中每个文件夹中的每个文件都使用@use‘./文摘’作为*。

票数 0
EN

Stack Overflow用户

发布于 2022-10-24 10:01:24

@use 有一个命名空间导入的变量。因此,您需要在变量名前面加上名称空间(即,而不是$primaryColor,编写variables.$primaryColor):

代码语言:javascript
运行
复制
@use 'variables';
// @use './variables' // creates the same namespace

header {
  background: variables.$primaryColor;
}

你也可以重命名命名空间

代码语言:javascript
运行
复制
@use 'variables' as 'renamedVariables';

header {
  background: renamedVariables.$primaryColor;
}

如果不想使用命名空间,可以使用没有它的负载变量

代码语言:javascript
运行
复制
@use 'variables' as *;

header {
  background: $primaryColor;
}

但是imo名称空间使您的样式表更加整洁(例如,每个变量来自何处,您不会意外地用另一个变量覆盖),所以我坚持使用它们.

https://stackoverflow.com/a/63012314/4551707给我指明了正确的方向

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73172387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档