跳到主要内容

正在配置

Stylelint需要一个配置对象,并在中查找一个:

  • 样式lint.config.js.stylelintrc.js格式文件
    • 使用哪个模块系统取决于您的默认模块系统配置对于Node.js(例如。,“type”:“模块”在里面package.json包).
  • 样式lint.config.mjs.stylelintrc.mjs格式文件使用导出默认值(ES模块)
  • 样式lint.config.cjs.stylelintrc.cjs文件使用模块.导出(通用JS)
  • .stylelintrc.json格式,.stylelintrc.yml,或.stylelintrc.yaml样式文件
  • .样式lintrcJSON或YAML格式的文件
    • 我们建议添加一个扩展(例如。,.json文件)帮助编辑器提供语法检查和突出显示。
  • 样式绒布中的属性package.json包

ES模块示例:

/**@类型 {进口(“stylelint”).配置}*/
出口 违约 {
规则: {
“块-非空”: 真的
}
};
笔记

这个@类型JSDoc注释使Typescript能够自动完成并进行类型检查。

CommonJS示例:

模块.出口 = {
规则: {
“块-非空”: 真的
}
};

JSON示例:

{
“规则”: {
“块-非空”: 真的
}
}

从当前工作目录开始,当找到其中一个目录时,Stylelint将停止搜索。或者,您可以使用--配置配置文件选项来缩短搜索。

配置对象具有以下属性:

规则

规则决定了线人寻找和抱怨什么。超过100条规则内置于Stylelint中。默认情况下没有打开任何规则。

这个规则属性为一个对象,其键是规则名称,值是规则配置。例如:

{
“规则”: {
“color-no-invalid-hex”: 真的
}
}

每个规则配置都适合以下格式之一:

  • 无效的(关闭规则)
  • 单个值(主选项)
  • 具有两个值的数组([主要选项,次要选项])

指定主选项将打开规则。

许多规则为进一步的自定义提供了辅助选项。要设置辅助选项,请使用双成员数组。例如:

{
“规则”: {
“选择器-pseudo-class-no-unknown”: [
真的,
{
“ignorePseudoClasses”: [“全球”]
}
]
}
}

可以向对象添加任意数量的关键帧。例如,您可以:

  • 关掉块-非空
  • 打开单位允许列表带有主选项
  • 打开字母值表示具有主要和次要选项
{
“规则”: {
“块-非空”: 无效的,
“单位允许列表”: [“他们”, “雷姆”, "%", “s”],
“字母值表示”: [“百分比”, { “例外属性”: [“不透明度”] }]
}
}

一些规则和选项接受正则表达式。您可以强制执行以下常见情况:

  • 烤肉串:^([a-z][a-z0-9]*)(-[a-z0-9]+)*$
  • 下部外壳:^[a-z][a-zA-Z0-9]+$
  • 蛇形外壳(_C):^([a-z][a-z0-9]*)(_[a-z0-9]+)*$
  • UpperCamel手机壳:^【A-Z】【A-zA-Z0-9】+$

或者使用正向lookbehind正则表达式强制前缀。例如,(?<=foo-)前缀为foo公司-.

禁用修复

您可以设置禁用修复禁用自动修复的辅助选项按规定.

例如:

{
“规则”: {
“颜色-功能-符号”: [“现代”, { “禁用修复”: 真的 }]
}
}

消息

您可以使用消息第二个选项,用于在违反规则时传递自定义消息。

例如,以下规则配置将替代自定义消息:

{
“规则”: {
“定制-性能模式”: [
“^([a-z][a-z0-9]*)(-[a-zO-9]+)*$”,
{
“消息”: “自定义属性名称应为kebab-case”
}
]
}
}

或者,您可以编写自定义格式化程序如果您需要认真定制,则可以实现最大程度的控制。

实验特性:一些规则支持消息参数。例如,在配置彩色-非十六进制规则中,可以在消息字符串中使用十六进制颜色:

.stylelintrc.js格式:

{
'颜色-十六进制': [真的, {
消息: (十六进制) => `不要使用十六进制颜色,如“${十六进制}"`,
}]
}

.stylelintrc.json格式:

{
“无十六进制颜色”: [真的, {
“消息”: “不要使用十六进制颜色,如\”%s\“”
}]
}

对于不支持JSON等函数的格式,可以使用打印-类似格式(例如。,%秒). 另一方面,对于JS格式,您可以使用打印-比如格式和函数。

报告禁用

您可以设置报告禁用报告任何样式可分对该规则的注释,实际上不允许作者选择退出该规则。

例如:

{
“规则”: {
“颜色无无效十六进制”: [真的, { “reportDisables”: 真的 }]
}
}

该报告被认为是一个皮棉错误。

严重程度

您可以使用严重程度第二个选项,用于调整任何特定规则的严重性。

的可用值严重程度是:

  • “警告”
  • “错误”(默认)

例如:

{
“规则”: {
“数字最大精度”: [
2,
{
“ignoreUnits”: [“他们”],
“严重性”: “警告”
}
]
}
}

报告员可以使用这些严重程度来显示问题或以不同的方式退出流程。

实验特性:支持一些规则消息参数。对于这些规则,可以使用函数严重程度,它将接受这些参数,允许您根据这些参数调整严重性。

此函数必须返回“错误”,“警告”,或无效的.何时返回无效的,的默认严重性将被使用。

例如,给定:

{
规则: {
'选择器不允许列表': [
[“a>.foo”, '/\\[data-.+]/'],
{
严重程度: (选择器) => {
返回选择器.包括('a>.foo') ? “错误” : “警告”;
},
},
],
},
}

以下模式被报告为错误:

a>.foo {}

但以下模式将被报告为警告:

a[data-auto=“1”] {}

延伸

您可以扩展现有配置(无论是您自己的配置还是第三方配置)。配置可以捆绑插件、自定义语法、选项和配置规则。它们还可以扩展其他配置。

例如,stylelint-config-标准是我们的官方配置之一,您可以扩展。

当一个配置扩展另一个配置时,它从另一个的属性开始,然后添加和覆盖其中的内容。

例如,要扩展stylelint-config-标准然后将alpha值更改为数字并关闭选择器类图案规则:

{
“扩展”: “stylelint-config-standard”,
“规则”: {
“字母值表示”: “数字”,
“选择器-类别-图案”: 无效的
}
}

您可以扩展现有配置的数组,使数组中的每个项优先于上一个项(因此第二个项覆盖第一个项中的规则,第三个项覆盖第二个和第一个项的规则,依此类推,最后一个项覆盖所有其他项)。

例如,使用stylelint-config-标准,然后分层myExtendableConfig(我的可扩展配置)然后覆盖字母值表示规则:

{
“扩展”: [“stylelint配置标准”, “./myExtendableConfig”],
“规则”: {
“字母值表示”: “数字”
}
}

的价值“扩展”是最终要求()d.它可以适合与Node的任何格式require.resolve()算法。这意味着“定位器”可以是:

  • 中模块的名称节点_模块(例如。stylelint配置标准; 该模块的主要的文件必须是有效的JSON配置)
  • 使用.js.json文件扩展。
  • 文件的相对路径.js.json文件扩展名,相对于引用配置(例如,如果configA具有扩展:“../configB”,我们会寻找配置B相对于配置A)。

您将在中找到更多配置很棒的Stylelint.

插件

插件是为支持方法、工具集、,非标准的CSS功能或非常具体的用例。

例如,样式林阶是一个流行的插件包,用于在声明块中对属性等进行排序。

插件通常包含在共享配置中你可以延伸例如样式lint-config-standard-scssconfig包括样式绒scss插件。

要直接使用插件,请添加“插件”数组,其中包含插件对象或“定位器”,标识您想要使用的插件。延伸上面的,“定位器”可以是:

  • npm模块名称
  • 绝对路径
  • 相对于调用配置文件的路径

声明插件后,在您的“规则”对象你需要添加选项对于插件的规则,就像任何标准规则一样。查看插件的文档,了解规则名称应该是什么。

{
“插件”: [“../specialrule.js”],
“规则”: {
“插件名称空间/特殊规则”: “一切”
}
}

“插件”可以提供单个规则或一组规则。如果您使用的插件提供了一个集合,请在“插件”配置值,并使用它在中提供的规则“规则”例如:

{
“插件”: [“../some-rule-set.js”],
“规则”: {
“some规则集/第一规则”: “一切”,
“some-rule-set/second规则”: “什么都没有”,
“some规则集/third规则”: “一切”
}
}

您将在中找到更多插件很棒的Stylelint.

自定义语法

指定要在代码中使用的自定义语法。更多信息.

覆盖

使用覆盖属性,可以指定要将配置应用到的文件子集。

例如,要使用:

  • 后ss-scss所有的语法.scs文件夹
  • 百分比所有alpha值的符号.css文件中的文件组件目录
{
“规则”: {
“字母值表示”: “数字”
},
“覆盖”: [
{
“文件”: [“*.scs”, “**/*.scss”],
“自定义语法”: “postss-scss”
},
{
“文件”: [“组件/**/*.css”, “第/**/*.css页”],
“规则”: {
“字母值表示”: “百分比”
}
}
]
}

的值覆盖属性是一个对象数组。每个对象:

  • 必须包含文件夹属性,这是一个glob模式数组,用于指定应将配置应用于哪些文件
  • 应包含至少一个其他常规配置属性,例如自定义语法,规则,延伸等。

这个自定义语法属性将被替换,而插件,延伸,规则等。

模式应用于相对于配置文件目录的文件路径。例如,如果您的配置文件具有以下路径/project-foo/.stylelintrc.js并且要lint的文件具有以下路径/项目foo/components/bar.css,然后是中提供的模式.stylelintrc.js将针对相对路径执行组件/bar.css.

覆盖的优先级高于常规配置。同一配置中的多个覆盖将按顺序应用。也就是说,配置文件中的最后一个覆盖块始终具有最高优先级。

处理器

警告

这是一个实验特性。API将来可能会更改。

这个处理器属性是15.0.0中删除,但已恢复后处理。请注意,这与之前的行为不同。

处理器是连接到Styleint管道中的函数。目前,处理器只包含两个属性:字符串名称和一个函数后处理.后处理在计算完所有规则后运行。此函数接收结果并可以对其进行修改。

例如,可以使用处理器重新映射结果位置。下面的处理器将“color-no-hex”规则的警告位置扩展到整个CSS声明。规则中十六进制颜色的警告,如{颜色:111;}最初指向十六进制颜色本身(例如,第1行,第12-16列)。处理后,警告将包含整个声明(例如,第1行第5-16列)。

{
“规则”: { “color-no-hex”: 真的 },
“处理器”: [“路径/to/my-processor.js”]
}
//我的处理器.js

/**@类型 {进口(“stylelint”).处理器}*/
出口 违约 功能 我的处理器() {
返回 {
名称: “remap-color-no-hex”,

后处理(结果,) {
常量更新的警告=结果.警告.地图((警告) => {
如果 (警告.规则 !== “无十六进制颜色”) {
返回警告;
}

更新的警告= { ...警告};

?.步行((节点) => {
常量 {开始,结束} =节点.来源;

如果 (
节点.类型 === “拒绝” &&
开始.线 <=警告.线 &&
结束.线 >=警告.endLine(结束行) &&
开始. <=警告. &&
结束. >=警告.结束列
) {
更新的警告= {
...更新的警告,
线:开始.线,
endLine(结束行):结束.线,
:开始.,
endColumn(结束列):结束.
};

返回 ;
}
});

返回更新的警告;
});

结果.警告 =更新的警告;
}
};
}

默认严重性

您可以为所有在辅助选项中没有指定严重性的规则设置默认严重性级别。例如,您可以将默认严重性设置为“警告”:

{
“默认严重性”: “警告”
}

报告*

这些报告*属性为提供额外的验证样式可分评论。这有助于强制执行有用且记录良好的禁用。

可用报告包括:

它们的配置类似于规则。它们可以有三个值之一:

  • 无效的(关闭配置)
  • 真的(主要选项)
  • 具有两个值的数组([主要选项,次要选项])

以下是可用的辅助选项:

  • “除”采用一个规则名称数组,其中主选项应被反转。
  • “严重性”调整规则发出的错误级别,如上所述.

例如,这会导致不必要地禁用除选择器-max类型:

{
“reportNeedlesDisables”: [真的, { “除”: [“选择器最大类型”] }]
}

并发出禁用的警告单位允许列表没有描述:

{
“reportDescriptionlessDisables”: [
,
{
“除”: [“单位允许列表”],
“严重性”: “警告”
}
]
}

reportDescriptionless禁用

报告样式可分没有描述的注释。A类报告*财产。

例如:

{
“reportDescriptionlessDisables”: 真的
}

更多信息.

报告无效范围禁用

报告样式可分与配置对象中指定的规则不匹配的注释。A类报告*财产。

例如:

{
“reportInvalidScopeDisables”: 真的
}

更多信息.

reportNeedless禁用

报告样式可分与任何需要禁用的lint不匹配的注释。A类报告*财产。

例如:

{
“reportNeedlesDisables”: 真的
}

更多信息.

配置注释

您可以设置什么样的配置注释/*样式可分*/从开始。如果使用具有不同配置的Stylelint的多个实例,这将非常有用。

例如,要使用/*样式lint-fo-instance-disable*/而不是默认值/*样式可分*/:

{
“配置注释”: “stylelint-fo-instance”
}

ignore禁用

忽略样式可分(例如。/*样式可分块-no-empty*/)评论。

例如:

{
“ignoreDisables”: 真的
}

更多信息.

ignore文件

您可以提供全局变量或全局变量数组来忽略特定文件。

例如,您可以忽略所有JavaScript文件:

{
“ignoreFiles”: [“**/*.js”]
}

Stylelint忽略节点_模块默认情况下为目录。但是,如果ignore文件已设置。

如果glob是绝对路径,则按原样使用。如果它们是相对路径,则相对于

  • 配置基本目录,如果提供;
  • 配置的文件路径,如果配置是Stylelint找到并加载的文件;
  • 进程.cwd().
笔记

这是忽略大量文件不是一种有效的方法。如果要有效忽略大量文件,请使用.stylelintinore或调整您的文件globs。

allowEmptyInput(允许空输入)

当glob模式不匹配任何文件时,Stylelint不会抛出错误。

例如:

{
“allowEmptyInput”: 真的
}
笔记

不应在每个文件的基础上覆盖此配置选项。

更多信息.

隐藏物

存储已处理文件的结果,以便Stylelint仅对更改的文件进行操作。

例如:

{
“缓存”: 真的
}
笔记

不应在每个文件的基础上重写此配置选项。

更多信息.

修理

如果可能,自动修复规则报告的问题。

例如:

{
“修复”: 真的
}
笔记

不应在每个文件的基础上重写此配置选项。

更多信息.