JetBrains IDE(IDEA,PhpStorm,WebStorm等)中的Sass linting

时间:2018-08-16 14:46:45

标签: intellij-idea sass ide phpstorm

当我查看项目中的Sass / SCSS文件时,由于没有意识到所讨论的Sass语句依赖于在单独的部分文件中声明的mix-ins /变量,因此出现了“橙色”错误。 / p>

我应该怎么做才能使IDE识别出这样的变量和混入是在另一个部分文件中声明的?

例如

_variables.scss
_mixins.scss
_partial1.scss      <-- lots of warnings in here 
_partial2.scss      <-- lots of warnings in here too
main.scss           <-- @imports _variables, _mixins and _partial files.

错误提示的示例工具提示:

enter image description here

2 个答案:

答案 0 :(得分:0)

您会看到什么错误-“未解决”或“仅按名称解决”? PhpStorm / IDEA使用以下方法来解析SASS中的元素:

  • 如果可以将元素解析为当前文件或显式导入文件中的声明,则只需解析

  • 如果在第一步之后未解析元素(在当前导入到当前文件的文件中找不到声明),则IDE会尝试通过名称来解析该元素,无论在哪个文件中声明('全球”元素)。已解决的元素通过弱警告检查标记为“仅按名称解决”,因为IDE无法知道此元素是“全局”元素还是只是错误地导入。如果您不希望看到这些警告,可以禁用此检查。

  • 如果元素仍然无法解析,则标记为“未解决的内容”警告。

答案 1 :(得分:0)

有2种方法:

  1. 要从PHPStorm的角度来看是正确的,您需要将每个特定文件的所有依赖关系直接导入到其中(例如,在JavaScript模块中,例如)。但是,这种方式会导致CSS代码膨胀,因为在某些情况下,如果您的导入文件包含CSS代码-它将被复制并且即使是粉碎者也无法解决
  2. 要摆脱这些错误,您可以禁用此特定检查。我个人更喜欢这种方式,因为“仅按名称解析”检查是针对SASS / SCSS的,不会破坏其他类型文件的类似检查。