首页 > 解决方案 > PhpStorm SCSS 在部分更改时触发编译

问题描述

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

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

PhpStorm 版本:2017.2.3

文件结构:

文件结构

观察者配置: 观察者配置

范围配置:

范围配置

全局.scss

全局.scss

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

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

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

文件结构

如果没有 scss 目录的源根目录,即使使用范围模式也会触发编译。但是编译后的 css 被放置在错误的目录中 - 所以它不可用。

标签: sassphpstorm

解决方案


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

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

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

推荐阅读