Node.js API
Stylelint 模組包含一個提供 Node.js API 的 lint()
函式。
const result = await stylelint.lint(options);
選項
除了 標準選項 之外,Node API 接受
config
一個 設定物件。
如果您使用此選項,Stylelint 就不會費心尋找設定檔 (例如 stylelint.config.js
)。
code
要檢查的字串。
cwd
Stylelint 將從中尋找檔案的目錄。預設為 process.cwd()
回傳的目前工作目錄。
files
檔案 glob 或 檔案 glob 陣列。
相對 glob 視為相對於 globbyOptions.cwd
。
儘管 files
和 code
都是「選填」,但必須有其中一個,且不能同時有兩個。
globbyOptions
與 files
一起傳遞的選項。
例如,您可以在 glob 路徑時設定特定的 cwd
來使用。files
中的相對 glob 視為相對於此路徑。預設情況下,globbyOptions.cwd
會由 cwd
設定。
如需更詳細的用法,請參閱 Globby 指南。
傳回的 Promise
stylelint.lint()
傳回一個 Promise
,其解析為包含下列屬性的物件
code
包含自動修正程式碼的字串,如果 fix
選項設為 true
且提供了 code
選項。否則,為 undefined
。
cwd
用作 linting 作業工作目錄的目錄。
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
屬性的值。
解析檔案的有效設定
如果您想找出實際上會用於檔案的設定為何,而不實際執行 linting,您可以使用 resolveConfig()
函式。給定檔案路徑,它將傳回一個 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
,並解析為 undefined
。
您也可以傳遞下列 選項子集,您通常會傳遞給 lint()
cwd
config
configBasedir
customSyntax