使用变量SASS导入路径

使用变量SASS导入路径,sass,Sass,我想导入一个使用变量的文件 我的代码(不起作用): 错误消息:错误:要导入的文件找不到或不可读:#{$input field theme} 这是有效的:@import'default'此时不可能,请在2012年查看此项以了解更多信息 理由如下: 允许动态导入将完全破坏Sass快速确定哪些文件导入哪些其他文件的能力,从而确定何时需要重新编译哪些文件 该线程还包含指向另一个问题的链接,该问题讨论了动态依赖关系的未来计划: 我现在锁定这个问题,因为有很多噪音 增加了很多价值。总而言之,这是一个计划:

我想导入一个使用变量的文件

我的代码(不起作用):

错误消息:
错误:要导入的文件找不到或不可读:#{$input field theme}


这是有效的:
@import'default'

此时不可能,请在2012年查看此项以了解更多信息

理由如下:

允许动态导入将完全破坏Sass快速确定哪些文件导入哪些其他文件的能力,从而确定何时需要重新编译哪些文件

该线程还包含指向另一个问题的链接,该问题讨论了动态依赖关系的未来计划:

我现在锁定这个问题,因为有很多噪音 增加了很多价值。总而言之,这是一个计划:

新的
@use
指令将提供将文件作为 mixin,所以您可以动态地决定是否以及在何处包含它。 这将使Sass与其他工作良好的语言更加一致 没有动态导入,因为这意味着导入不再具有 不可避免的副作用

我们将添加一个
load()
函数,该函数将允许 基于变量值在运行时加载文件的样式表。这 将支持需要创建样式表的更复杂的用例 基于用户输入加载,同时保持静态 跟踪导入图及其定义的mixin和函数


另一种解决方案是,如果使用Gulp编译SASS文件,则需要在配置中引入includePaths。然后,一旦您从文件夹导入任何模块,它就会考虑查看您在“includePaths”中引入的路径。 Ex)

现在,您已经设置了代码,可以从各种路径导入文件:

 @import "promotion/code/styles/_promotion.scss";
要导入此文件,它将使用SASS-LOADER查看所有“includePath”。

Webpack
: 我们可以将
prependData
属性添加到
sass加载程序
选项:

{ 
  loader: 'sass-loader',
  options: {
    additionalData: '$env: ' + process.env.NODE_ENV + ';',
  }
}
注意:
prependData
也可以是接收
加载程序上下文的
函数。

祝你好运……

好的,谢谢你,我会请导师来实施这一点。我在4月19日阅读了讨论。他们认为动态导入会使事情失去控制。另一方面,包括我在内的许多人都执着于动态主题。是的,CSS不是一个prog.lang,我们希望一切都在控制之中,但SCSS的想法来自于CSS的局限性。它通过变量和导入来扩展CSS,因此这将是他们发展项目的决定。现在,我们有另一个限制,如果有一个要求,人们会找到一种方法使用或不使用SCS。感谢他们,他们让CSS之后的生活变得更轻松。如果我能从“./some path/right here/this folder/this file.ttf”中执行类似的
@import{myFontFile}的操作,我会非常喜欢的
然后在
@font-face{…url('data:font/truetype;charset=utf-8;base64,{myFontFile.readFile()}')}中使用它
可能的重复非常棒。它在我的npm项目中对我有效。非常感谢!我使用它,它工作得很好——不过请注意,在最新版本中,字段名是
additionalData
,而不是
prependData
 @import "promotion/code/styles/_promotion.scss";
{ 
  loader: 'sass-loader',
  options: {
    additionalData: '$env: ' + process.env.NODE_ENV + ';',
  }
}