【发布时间】:2017-06-25 23:13:15
【问题描述】:
我的文件结构如下:
all_skins
|— 1
|— css
|- _skinVariables.scss
|— file.scss
|— file.css
|— 2
|— css
|- _skinVariables.scss
|— file.scss
|— file.css
|— 3
|— css
|- _skinVariables.scss
|— file.scss
|— file.css
common_css
| _specificCode.scss
| _otherCode.scss
在我的每个“皮肤”的scss 文件中,我正在导入一些通用的scss 部分,例如_skinsVariables 和_specificCode。每个皮肤的 _skinVariables 部分更改,_specificCode 是在位于all_skins 目录之外的所有 scss 文件中重用的一般部分。
问题是每当我对specificCode部分文件进行更改时,我都需要手动重新编译每个scss文件以使用修改后的代码生成新的css。
我正在使用 PhpStorm 的文件观察器,因此对特定 scss 文件的任何更改都会触发观察器,但对包含的 _specificCode(或任何包含的部分)的修改不会触发它。
有没有办法编译父文件夹中的所有 scss 文件?这些编号的子文件夹有 30 多个,因此手工操作非常耗时。
任何使用命令行、PhpStorm 本身或其他软件(如 grunt)的解决方案都可以满足我的需求(最不希望)。
编辑:
file.scss 如下:
@import "skinVariables";
@import "../../../common_css/specificCode"
为了更清楚一点,问题是我的所有 file.scss 中都包含了部分,为了让生活更轻松,大部分代码都来自部分。
当我修改在所有文件中导入的部分时,例如 _specificCode.scss,我需要重新编译所有 file.scss,但这不会发生。
观察者目前的工作方式是仅在对 file.scss 本身进行修改时触发,而不是对包含的部分进行修改。
有什么解决办法吗?
【问题讨论】:
-
1) 您的文件观察器设置是什么? 2) 是“不起作用”的
_specificCode(或其他)文件在项目中吗? 3) 我假设您可以很好地编译您的个人皮肤(换句话说:当前文件观察器工作)。 4) 并且对_skinsVariables的更改正常处理(皮肤被编译)? -
1) 它们在 phpstorm 中:gyazo.com/2cd504495766e57099d22063dcd1a75d 2) 是的,它是项目的一部分,但在 all_skins 文件之外。 3) 我可以手动编译它们就好了,它们会自动编译只有如果我编辑文件本身4)不,更改包含的部分不要触发观察者
-
让我把事情弄清楚——你设置了 FileWatcher——一切正常——除非你对 _specificCode.scss 进行了更改?我不明白这一点“但是对包含的 _specificCode (或任何包含的部分)的修改不会触发它。” - “任何包含的部分”是什么意思?
-
@HonzaRydrych 不仅适用于该特定文件,还适用于任何部分文件。修改部分不会重新编译包含该部分的所有 .scss 文件,即使它们正在被监视。
-
您能否更改文件系统结构,在您原来的问题中,使用标签什么是部分的以及 _specificCode.scss 和 _skinVariables.scss 的位置?
标签: ruby compilation sass phpstorm