PhpStorm SCSS 在部分更改时触发编译

PhpStorm SCSS trigger compilation on partial change

首先,我必须指出,这一切在前一段时间都运行良好。一段时间后我回到了项目。同时我更新了 PhpStorm 并迁移到 Win10。其他一切保持不变。

我在触发 scss 部分编译时遇到问题。当我在根文件 "global.scss" 中进行更改时,一切正常 - 部分文件也被编译。但是,当我在部分文件中进行更改时,PhpStorm 不会触发根文件的编译。

PhpStorm 版本:2017.2.3

文件结构:

观察者配置:

作用域配置:

global.scss

我已经尝试了很多 - 没有任何效果。文件观察器似乎忽略了带有下划线前缀的部分。

编辑: 我发现了一些东西 - 范围模式中的通配符似乎忽略了带下划线的文件。然而,部分被标记为包含在文件树中。我暂时将范围更改为项目文件并且效果很好 - 不幸的是我不能离开这个设置。

编辑2: 我不知道它是错误还是功能,但 PhpStorm 以奇怪的方式处理嵌套的源根。检查此文件结构:

没有 scss 目录的源代码根目录,即使使用作用域模式也会触发编译。然而编译后的 css 被放置在错误的目录中 - 所以它不可用。

根据您的信息和调查:您正在使用嵌套的 "Source" 文件夹(在 scss 上)和 $SourcepathEntry$ 及相关的宏...这似乎无法正常工作预计在您的 IDE 版本中。

摆脱它——您的设置根本不需要它。您的文件夹结构非常标准,因此可以使用更多 "standard" 方法解决。

  • 暂时禁用此文件观察器(您可以稍后将其删除)并创建一个新的。
  • 尝试$FileDirPathFromParent()$参数化宏(它接受参数)。 例如$FileDirPathFromParent(src)$它returnsfoo/barsome/path/src/foo/bar/baz.scss文件路径。这个宏应该在制作所需路径时完成工作。