如何删除 WebStorm sass-lint 错误“未知的伪选择器 'ng-deep'”
Posted
技术标签:
【中文标题】如何删除 WebStorm sass-lint 错误“未知的伪选择器 \'ng-deep\'”【英文标题】:How to remove WebStorm sass-lint error "Unknown pseudo selector 'ng-deep'"如何删除 WebStorm sass-lint 错误“未知的伪选择器 'ng-deep'” 【发布时间】:2018-01-11 13:09:13 【问题描述】:在 WebStorm 中带有 scss 和 ::ng-deep 的 Angular 2+ 使用文本“Unknown pseudo selector 'ng-deep'”突出显示此选择器
我尝试了类似的方法:
selector-pseudo-class-no-unknown: true
ignorePseudoClasses: ng-deep
or
selector-pseudo-class-no-unknown: false
这些都不行。
如何在 scss-lint.yml 中为这个伪选择器设置异常?
【问题讨论】:
有帮助吗:intellij-support.jetbrains.com/hc/en-us/community/posts/… @Tonio 您应该在引用相关文本的答案中使用它。 WebStorm 更新后不再出现此问题 【参考方案1】:::ng-deep 是伪元素,不是伪类。 这在我的 .stylelintrc 中是等价的
"rules":
"selector-pseudo-element-no-unknown": [true,
"ignorePseudoElements": ["ng-deep"]
]
您还需要取消选中 Settings -> Inspections -> CSS -> Invalid Elements -> Invalid CSS pseudo selector
【讨论】:
【参考方案2】:在 Angular 4.x 中,您可以使用 /deep/
代替 ::ng-deep
。
UPD 14.05.2018
来自 angular.io 的引用:
不推荐使用穿透阴影的后代组合器,并且正在从主要浏览器和工具中删除支持。因此,我们计划放弃对 Angular 的支持(对 /deep/、>>> 和 ::ng-deep 的所有 3 个)。在此之前 ::ng-deep 应该是首选,以便与工具更广泛地兼容。
所以基本上你不应该使用其中任何一个,因为 Angular 团队将停止支持此功能。
【讨论】:
/deep/ 已从 4.3 中弃用更多信息 - alligator.io/angular/styles-between-components-angular 如果需要,你应该使用 ::ng-deep 但是是的.. 它们都将被弃用:)以上是关于如何删除 WebStorm sass-lint 错误“未知的伪选择器 'ng-deep'”的主要内容,如果未能解决你的问题,请参考以下文章