跳至主要内容

Node.js API

Stylelint 模块包含一个 lint() 函数,提供 Node.js API。

const result = await stylelint.lint(options);

选项

除了 标准选项 外,Node API 还接受

config

一个 配置对象

如果您使用此选项,Stylelint 不会费心查找配置文件(例如 stylelint.config.js)。

code

要进行 lint 的字符串。

cwd

Stylelint 将从中查找文件的目录。默认为 process.cwd() 返回的当前工作目录。

files

一个文件 glob,或 文件 glob 数组。

相对 glob 被认为相对于 globbyOptions.cwd

虽然 filescode 都是“可选的”,但您必须有一个,并且不能同时拥有两者。

globbyOptions

files 一起传递的选项。

例如,您可以设置一个特定的 cwd 来在对路径进行 glob 时使用。files 中的相对 glob 被认为相对于此路径。默认情况下,globbyOptions.cwd 将由 cwd 设置。

有关更详细的使用方法,请参阅 Globby 指南

返回的 promise

stylelint.lint() 返回一个 Promise,该 Promise 解析为包含以下属性的对象

code

包含自动修复代码的字符串,如果 fix 选项设置为 true 并且提供了 code 选项。否则,它为 undefined

cwd

用作 lint 操作的工作目录的目录。

errored

布尔值。如果为 true,则至少有一个具有“错误”级别严重性的规则注册了一个问题。

output

警告

此属性已弃用,将在下一个主要版本中删除。请改用 reportcode。请参阅 迁移指南

包含以下内容的字符串:

  • 格式化的问题(使用默认格式化程序或您传递的任何格式化程序)
  • 或自动修复的代码,如果 fix 选项设置为 true

postcssResults

包含所有累积的 PostCSS LazyResults 的数组。

report

包含格式化的问题(使用默认格式化程序或您传递的任何格式化程序)的字符串。

results

包含所有 Stylelint 结果对象的数组(格式化程序使用的对象)。

maxWarningsExceeded

包含最大警告数和找到的警告数的对象,例如 { maxWarnings: 0, foundWarnings: 12 }

语法错误

当您的 CSS 包含语法错误时,stylelint.lint() 不会拒绝 Promise。它解析为一个对象(请参阅 返回的 promise),其中包含有关语法错误的信息。

使用示例

示例 A

由于 config 不包含 extendsplugins 的任何相对路径,因此您不必使用 configBasedir

try {
const result = await stylelint.lint({
config: { rules: "color-no-invalid-hex" },
files: "all/my/stylesheets/*.css"
});
// do things with result.report, result.errored, and result.results
} catch (err) {
// do things with err e.g.
console.error(err.stack);
}

示例 B

如果 myConfig确实包含 extendsplugins 的相对路径,则您必须使用 configBasedir

const result = await stylelint.lint({
config: myConfig,
configBasedir: url.fileURLToPath(new URL("configs", import.meta.url)),
files: "all/my/stylesheets/*.css"
});

示例 C

使用字符串代码而不是文件 glob,以及详细格式化程序而不是默认的 JSON

const result = await stylelint.lint({
code: "a { color: pink; }",
config: myConfig,
formatter: "verbose"
});

// do things with result.report

报告将作为返回对象中 report 属性的值提供。

示例 D

使用您自己的自定义格式化程序函数

const result = await stylelint.lint({
config: myConfig,
files: "all/my/stylesheets/*.css",
formatter: (results) => {
/* .. */
}
});

示例 E

使用自定义语法

const result = await stylelint.lint({
config: myConfig,
files: "all/my/stylesheets/*.css",
customSyntax: {
parse(css, opts) {
/* .. */
},
stringify(node, builder) {
/* .. */
}
}
});
注意

customSyntax 选项也接受字符串。 请参阅选项文档以了解详细信息

示例 F

使用字符串代码和 fix 选项

const result = await stylelint.lint({
code: "a { color: pink; }",
config: { rules: { "hue-degree-notation": "angle" } },
fix: true
});

// do things with result.code

自动修复的代码将作为返回对象中 code 属性的值提供。

解析文件的有效配置

如果您想在不实际进行 lint 的情况下找出将对文件使用哪个确切配置,可以使用 resolveConfig() 函数。给定一个文件路径,它将返回一个 Promise,该 Promise 解析为有效配置对象

const config = await stylelint.resolveConfig(filePath);

// config => {
// rules: {
// 'color-no-invalid-hex': true
// },
// extends: [
// 'stylelint-config-standard',
// 'stylelint-config-css-modules'
// ],
// plugins: [
// 'stylelint-scss'
// ],
// …
// }

如果找不到文件的配置,resolveConfig() 将返回一个 Promise,该 Promise 解析为 undefined

您还可以传递以下子集 您通常传递给 lint() 的选项

  • cwd
  • config
  • configBasedir
  • customSyntax