【问题标题】:Make PhpStorm recognize PreCSS (Sass-like) variables in CSS让 PhpStorm 识别 CSS 中的 PreCSS(类 Sass)变量
【发布时间】:2016-07-29 14:25:11
【问题描述】:

我正在学习一个使用.css 文件中的变量的教程,该教程使用一个名为PreCSS(一组添加类似Sass 功能的插件)和PostCSS 的包。 gulp 需要这些包。

我有一个名为_variables.css 的文件,在定义变量时,所有内容都变为红色,并显示“选择器匹配未知元素”。 例如:

$blue: #0076A3;

代码可以正常工作,所以我需要让 PhpStorm 以某种方式识别此代码。

但是如果使用 Sass 代替它会起作用吗?不过,使用变量的原理是一样的。

在项目设置 - 检查中,SASS/SCSS 已激活,所以我猜它应该识别 Sass 变量。不知道是不是因为我用了这个 PreCSS 包。

可以通过某种方式解决问题吗?

【问题讨论】:

  • 在 IDE 正确支持 PostCSS(和最流行的插件)之前,您唯一的选择是将 *.css 扩展与支持这种语法的语言(在您的情况下为 Sass)相关联——它可以在Settings/Preferences | Editor | File Types 中完成。注意:这是 IDE 范围的设置,将影响所有项目和所有 *.css 文件。
  • 在文件类型“CSS 文件”上,我可以编辑“注册模式”并添加通配符,或者如果我双击“css 文件”我可以“编辑文件类型”和“添加关键字”,但我不做我应该做的事。你如何将 SASS 与 CSS 联系起来?
  • 什么“CSS 文件”?请截图。它不是标准文件类型——你一定是做错了什么或使用了其他东西(自定义插件/textmate 包/等?)将它添加到那里。默认情况下,*.css 模式与“层叠样式表”文件类型相关联。我上面的建议是将该模式与“Sass”文件类型(或 SCSS——只要符合您的需要)重新关联。理想情况下,与其使用.css 文件,不如使用一些自定义文件扩展名(例如.postcss)——这样普通的CSS 文件在其他项目中仍能得到正确处理。
  • 好的,我刚刚找到了“层叠样式表”文件类型(列表中还有“CSS文件”,可能是很久以前自定义添加的..)做一个自定义文件的好主意类型!我想我只是将“注册模式”上的 *.scss 添加到此文件类型中?
  • “自定义文件类型的好主意!” 不是文件类型!我说过“自定义扩展”。自定义文件类型对您没有任何作用——它可以以其他方式工作。我上面的话的整个想法是:将自定义文件扩展名添加到现有文件类型 - 例如将*.postcss(或*.precss,如果您愿意的话)模式添加到Sass 文件类型。然后将您的 _variables.css 重命名为 _variables.precss

标签: css phpstorm webstorm


【解决方案1】:

自 2016 年 9 月起,您可以使用 EAP 版本 2016.3 来支持 PostCSS。

下载链接: https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program

更多信息: https://plugins.jetbrains.com/plugin/8578?pr=phpStorm

【讨论】:

  • PostCSS 插件还不支持 postcss-variables。
【解决方案2】:

虽然这是一篇旧文章,但这里是为遇到它的用户提供的一些跟进。

TLDR:使用postcss-preset-envstyled-components

JetBrains 产品现在有一个可以安装的PostCSS plugin。它只支持 PostCSS 插件的一小部分,考虑到有无数个插件,这是有道理的。

支持以下 PostCSS 插件:

  • postcss-custom-properties
  • postcss-应用
  • postcss-自定义媒体
  • postcss-media-minmax
  • postcss-custom-selectors
  • postcss 嵌套
  • postcss 嵌套

幸运的是,编写 PreCSS 的多产 Jonathan Nealpostcss-preset-env 的主要贡献者,它使用所有这些插件以及当前和即将推出的 W3C 规范。 CSS 变量应按照 W3C 规范 var(--your-var-name) 使用,而不是自定义变量语法。

仅供参考: postcss-preset-env 已取代 cssnext,由于作者偏爱 styled-componentsCSS-in-JS,现已弃用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2019-01-07
    相关资源
    最近更新 更多