【发布时间】:2013-11-18 13:43:54
【问题描述】:
我不知道是 SASS 的错误还是功能。
比方说,我有这样的 test.scss 文件:
.test {
margin: 0;
}
它被编译成test.css。很好。
我有另一个 test2.scss 有这样的代码:
.test2 {
padding: 0;
}
编译成test2.css。也不错。
但是,如果我在 test2.scss 中添加 @import "test";,那么 test.css 将停止编译。
如果您想要导入 SCSS 或 Sass 文件但不想编译为 CSS 文件,您可以在文件名的开头添加下划线。
据我所知,test.css 必须在任何情况下都可以编译。 只能通过在 SCSS 文件名的开头添加下划线来禁用它的编译。
或者我误解了什么?请解释一下。
我的环境:Windows 7,css 文件由 PhpStorm 中的 File Watchers 编译,SASS 版本 - Media Mark (3.2.12)
更新 (20.11.13) 看来,这是 PhpStrom 的文件观察器的问题/更多信息可以在 this topic 找到。
【问题讨论】:
-
尝试通过将 test.scss 重命名为 _test.scss 来将其定义为部分。见:sass-lang.com/documentation/file.SASS_REFERENCE.html#import
-
@Jop 也试过这个,但没有任何改变。似乎,无论其名称如何,导入的文件总是被解释为部分文件。
-
我使用的是 sass 3.2.12,它编译了
@import文件,所以应该是 File Watchers 的问题。但是你为什么要编译一个已经包含在另一个文件中的文件呢?你能解释一下你到底想做什么吗? -
@AlexGuerrero 我们有一个产品下拉组件,它有自己的样式表 productDropdown.scss(编译为 CSS)。此下拉列表包含在产品页面中(以编程方式),因此 product.scss 导入 productDropdown.scss。但是我们在CMS中工作,编辑器可以在网站的任何地方添加下拉组件,所以我们需要动态包含下拉的css文件,因此它需要单独存在。至于 File Watchers,我明天会尝试 SASS 的 native watcher 并在这里报告结果。谢谢。
-
@AlexGuerrero 我已经进行了测试,看来 PhpStorm 的文件观察器存在一些问题。本机 SASS 观察程序编译这两个文件。谢谢你的提示!