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
。
虽然 files
和 code
都是“可选的”,但您必须有一个,并且不能同时拥有两者。
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
包含以下内容的字符串:
- 格式化的问题(使用默认格式化程序或您传递的任何格式化程序)
- 或自动修复的代码,如果
fix
选项设置为true
postcssResults
包含所有累积的 PostCSS LazyResults 的数组。
report
包含格式化的问题(使用默认格式化程序或您传递的任何格式化程序)的字符串。
results
包含所有 Stylelint 结果对象的数组(格式化程序使用的对象)。
maxWarningsExceeded
包含最大警告数和找到的警告数的对象,例如 { maxWarnings: 0, foundWarnings: 12 }
。
语法错误
当您的 CSS 包含语法错误时,stylelint.lint()
不会拒绝 Promise
。它解析为一个对象(请参阅 返回的 promise),其中包含有关语法错误的信息。
使用示例
示例 A
由于 config
不包含 extends
或 plugins
的任何相对路径,因此您不必使用 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
确实包含 extends
或 plugins
的相对路径,则您必须使用 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