Import 可以在Sass文件的导入语句中使用变量吗?

Import 可以在Sass文件的导入语句中使用变量吗?,import,sass,Import,Sass,用不了多久,我就能做这样的事了 @basePath:"../../some_crazy_project_path_to_repeat/less/"; @import "@{basePath}less.less"; 所以我试着在Sass中做同样的事情 $basePath:"../../some_crazy_project_path_to_repeat/less/"; @import "${basePath}less.scss"; // Syntax error: File to import n

用不了多久,我就能做这样的事了

@basePath:"../../some_crazy_project_path_to_repeat/less/";
@import "@{basePath}less.less";
所以我试着在Sass中做同样的事情

$basePath:"../../some_crazy_project_path_to_repeat/less/";
@import "${basePath}less.scss";
// Syntax error: File to import not found or unreadable: ${basePath}less.scss.


在Sass中有这样做的方法吗?

在Sass中导入时不能使用条件填充


考虑从项目中创建扩展。

不能在导入路径中使用前面提到的变量。您可以使用
-I
--load path
选项指定要从中搜索的目录

sass --watch sass/:css/ --load-path ../../path/to/library/
假设您有如下目录结构:

themes
    hotdog
        _variables.scss
    classic
        _variables.scss
styles.scss
# hotdog
sass styles.scss hotdog.css --load-path ./themes/hotdog/
# classic
sass styles.scss classic.css --load-path ./themes/classic/
styles.scs应具有相对于提供的加载路径的导入路径:

您的命令如下所示:

themes
    hotdog
        _variables.scss
    classic
        _variables.scss
styles.scss
# hotdog
sass styles.scss hotdog.css --load-path ./themes/hotdog/
# classic
sass styles.scss classic.css --load-path ./themes/classic/

有关更多信息,请参阅。

使用
{}
@steveax插值是一个非常酷的功能,但我不知道在这种情况下它会有什么帮助?@steveax谢谢。我正在从第三方库导入一堆组件定义。我可以重复完整的路径n次,但我想如果有一种方法可以在更少的时间内完成,为什么不使用Sass?@阿曼H,我把你的笔记加到问题上了。我想Andrey知道一些我不知道的事情:)Andrey的回答是正确的,不能对Sass导入使用字符串插值。@BernaMariano,
@import“#{$basePath}less.scss”导致Sass错误。Andrey是正确的,从“导入可能包含#{}插值,但必须有一定的限制。不可能基于变量动态导入Sass文件;插值仅适用于CSS导入。因此,它仅适用于url()导入。”