您可以在配置文件中将配置值设置为 null
。
比如说,我想使用 stylelint-config-standard
配置却又想禁用 at-rule-empty-line-before
规则,我可以这样设置:
{
"extends": "stylelint-config-standard",
"rules": {
"at-rule-empty-line-before": null
}
}
您也可以在 CSS 文件的某个特定区域内禁用一个规则。想了解更多可以参考配置指南的规则部分。
参考文档的命令行界面部分。
命令行界面也可以在 npm run scripts 中使用以使用非全局安装的 stylelint。
lint-staged 是一个 Node.js 脚本,可以在每次 Git 暂存文件时运行 stylelint.
stylelint 社区为热门任务运行者维护相应插件,包括 gulp、webpack、Broccoli 和 Grunt。请参阅他们的自述文档以开始使用。
如果您使用的任务运行器没有对应的 stylelint 插件,您可以将 stylelint 作为 PostCSS 插件使用,从而利用 PostCSS 提供的大量的 任务运行器插件。
这里还有一些通过 PostCSS JS 应用程序接口使用 PostCSS 插件的示例在文档中的。
但是,使用 stylelint 作为 PostCSS 插件会限制您可用的报告选项,只能使用postcss-reporter 所提供的选项。为了有更好的报告选项,我们推荐通过 stylelint Node.js 应用程序接口来使用 stylelint。
stylelint 社区也为流行的文本编辑器提供了很多相应的插件。请参阅他们的自述文档以开始使用。
stylelint 默认地能解析如下的非标准语法,包括Sass、Less 和 SugarSS,非标准语法可以从以下文件扩展名 .sass
、.scss
、.less
和 .sss
中自动推断出来。或者您也可以自己指定语法。
此外,在使用命令行界面或 Node.js 应用程序接口时,stylelint 可以接受任何PostCSS兼容语法。但请注意,stylelint 无法保证核心规则可以在上面列出的默认值以外的语法中正常工作。
可以参考文档来了解如何配置 stylelint 来解析非标准语法。
我们推荐在源文件进行任何转换之前检查您的源文件。
使用命令行界面标志 --fix
或 Node.js 应用程序接口选项 fix
,通过这个实验性功能来修复许多风格违规。
由于每条规则都是独立的,所以有时配置规则时可能会与其他规则产生冲突。比如说,您可以同时启用两个冲突的黑名单和白名单规则,如 unit-blacklist
和 unit-whitelist
。
而您作为配置文件的作者,要责无旁贷地处理这些规则冲突。
一条规则必须符合开发者指南中列出的标准,其中包括仅规则仅适用于标准 CSS 语法,是否具有一个明确的完成状态。而插件是由社区构建的规则或规则集,不必遵循标准。它可能支持特定的方法论、工具集、非标准的构造和功能、特定用例。
例如,我们发现强制规定属性顺序,属性分组等的规则更适合作为插件,因为大家对于要执行什么,以及如何执行有很多不同的看法。当您在编写或使用一个插件时,您可以确保强制执行您自己的特定偏好;但一个规则如果试图满足太多的不同用例会变得一团糟糕。
插件是很容易合并到您的配置中的。
是的,您可以使用 message
辅助选项或编写您自己的格式化程序。
您可以使用 stylelint-selector-bem-pattern 插件确保您的选择器符合所选的 BEM 风格模式。
您还可以利用 selector-*
规则来禁止某些类型的选择器(例如ID选择器)和控制优先级。
如果您正在使用 SUITCSS,则可能需要使用他们的可共享配置。
a { color: red; }
/** ↑
* Declaration blocks like this */
可以一起使用 block-opening-brace-newline-after
和 block-opening-brace-newline-before
规则,比如如下配置:
{
"block-opening-brace-newline-after": ["always"],
"block-closing-brace-newline-before": ["always"]
}
如下样式表可以通过上述规则:
a {
color: red;
}
但是如下样式表却不能通过:
a { color: red;
}
a {
color: red; }
a { color: red; }
如果想允许单行代码块同时在多行代码块中强制使用换行符,可以设置上述两条规则选项为 "always-multi-line"
。
*-pattern
规则?使用与您选择的约定相对应的正则表达式:
^([a-z][a-z0-9]*)(-[a-z0-9]+)*$
^[a-z][a-zA-Z0-9]+$
^([a-z][a-z0-9]*)(_[a-z0-9]+)*$
^[A-Z][a-zA-Z0-9]+$
比如,对于遵循小驼峰拼写式的类选择器,使用 "selector-class-pattern": "^[a-z][a-zA-Z0-9]+$"
。
所有这些模式都不允许以数字,两个连字符或后跟数字的连字符开头的CSS标识符。
使用defaultSeverity
配置选项。
用户可能 require()
您 npm 包中的任何文件,所以您需要做的就是记录哪些路径指向配置(例如 require('my-package/config-2')
)`)。
请参阅文档中的这个部分部分,该部分解释了 * -empty-line-before
规则如何工作。
extends
,那每个规则的选项是会被合并还是覆盖?它们将会被覆盖。
extends
机制在配置文件中有更详细的介绍:
当一个配置继承另一个配置时,它从另一个配置的属性开始,然后添加并覆盖其中的内容。
这种设计的原因记录在#1646中。