SASS在CSS生成中忽略@import-ed文件

SASS在CSS生成中忽略@import-ed文件,sass,phpstorm,Sass,Phpstorm,我不知道这是bug还是SASS的特性 比方说,我有这样的test.scss文件: .test { margin: 0; } 它被编译成test.css。好 我还有另一个test2.scss代码如下: .test2 { padding: 0; } 它被编译成test2.css。也很好 但是,如果我添加@import“test”在test2.scss中,然后test.css停止编译 : 如果有要导入但不想编译为CSS文件的SCSS或Sass文件,可以在文件名的开头添加下划线 由此我可以理解,

我不知道这是bug还是SASS的特性

比方说,我有这样的test.scss文件:

.test {
  margin: 0;
}
它被编译成test.css。好

我还有另一个test2.scss代码如下:

.test2 {
padding: 0;
}
它被编译成test2.css。也很好

但是,如果我添加@import“test”在test2.scss中,然后test.css停止编译

:

如果有要导入但不想编译为CSS文件的SCSS或Sass文件,可以在文件名的开头添加下划线

由此我可以理解,test.css无论如何都必须编译。只能通过在SCSS文件名的开头添加下划线来禁用编译

还是我理解错了什么?请给我解释一下

我的环境:Windows 7,css文件由文件观察者在PhpStorm,SASS版本-Media Mark(3.2.12)中编译

更新(20.11.13)
看来,这是PhpStrom的文件观察者的问题/更多信息可在上找到。

多亏了@AlexGuerrero的建议,安德烈·巴扎诺夫的答案问题终于解决了

原因是PhpStorm的SCSS文件监视程序设置“仅跟踪根文件”

:

在文件上调用文件监视程序时,PhpStorm会检测所有 包含此文件的文件。对于这些文件中的每个文件 反过来,PhpStorm再次检测包含它的文件。这 递归地重复该操作,直到PhpStorm到达文件 未包含在指定范围内的任何位置。这些文件 被称为根文件(不要与内容根混淆)

  • 选中此复选框后,文件监视程序仅针对根文件运行
  • 清除该复选框后,文件监视程序将针对从中调用它的文件以及调用它的所有文件运行 此文件递归地包含在指定的范围内

在我的例子中,此复选框已选中,因此我取消选中它,现在我有了预期的行为。

尝试将test.scss重命名为_test.scss,将其定义为分部。请看:@Jop也尝试过这个,但没有任何改变。似乎,导入的文件总是被解释为部分文件,不管它的名称如何。我使用的是sass 3.2.12,它编译
@import
文件,因此应该是文件观察者的问题。但是为什么要编译一个已经包含在另一个文件中的文件呢?你能解释一下你到底想做什么吗?@AlexGuerrero我们有一个产品下拉组件,它有自己的样式表productDropdown.scss(编译成CSS)。此下拉列表包含在产品页面(以编程方式),因此product.scss导入productDropdown.scss。但我们在CMS中工作,编辑器能够在网站的任何地方添加下拉组件,所以我们需要动态地包含下拉列表的css文件,因此它需要单独存在。至于文件观察者,明天我将尝试SASS的原生观察者,并在这里报告结果。谢谢。@AlexGuerrero我做了一个测试,结果显示,PhpStorm的文件监视程序出现了一些问题。本机SASS watcher编译这两个文件。谢谢你的提示!