【发布时间】:2017-04-29 16:08:56
【问题描述】:
我使用postcss-precss(模拟大多数 Sass 功能,但不模拟数学)结合postcss-cssnext(提供最新的原生 CSS 功能,即我在 postcss-precss 中缺少的 calc())。
通常我会通过插入 $vars 和 #{} 来组合 Sass 和 calc():
$size-width-search-btn: 40px;
.btn--search {
width: calc(#{$size-width-search-btn} + 5); // is compiled to: width: calc(#{$size-width-search-btn} + 5);
}
但 postcss-precss 似乎不支持这种插值 - 它根本没有处理。然而,好消息是它无需插值即可工作:
width: calc($size-width-search-btn + 5); // is compiled to: 45px
但是我的 IDE (PhpStorm 2016.3) 无法识别这种语法,我得到了这个恼人的亮点:
尽管这个语法是正确的。
我不能指望 cssnext 会开始支持插值变量(因为无论如何这都是一个糟糕的 hack),我宁愿让 WebStorm/PhpStorm 识别带有 calc() 和 $vars 的简化语法:
calc($var1 + $var2)
但是怎么做呢?
我不能使用 postcss-sass,因为这个加载器的源映射是broken。我也不想将我的 .scss 更改为 .pcss,因为 JetBrain 的 PostCSS plugin 仍然不支持某些 Sass 功能(如 $variables 或内联 cmets)。
【问题讨论】:
-
所以你的问题是 PhpStorm 不支持某种 hacky 语法?
-
嗯——PhpStorm 的 PostCSS 插件页面清楚地表明它支持哪些模块。变量票证(在变量定义方面看起来很相似):youtrack.jetbrains.com/issue/WEB-24368 (github.com/postcss/postcss-simple-vars)。同时——也许使用 CSS 自定义属性 (w3.org/TR/css-variables)。附言所有 PostCSS 门票:youtrack.jetbrains.com/issues/WEB?q=postcss
-
@Kyle 不,请仔细阅读 - 通常支持这种 hacky 语法,不支持简化语法(没有
$var插值)。 -
感谢您的澄清 :)
-
@LazyOne - 谢谢,如果我找不到更好的选择,我可能会切换到原生 CSS vars、.pcss 和 PostCSS 插件。
标签: css sass phpstorm webstorm postcss