Node.js API
Stylelint モジュールには、Node.js API を提供する lint()
関数が含まれています。
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
とともに渡されるオプション。
たとえば、パスを glob する際に使用する特定の cwd
を設定できます。files
内の相対 glob は、このパスを基準と見なされます。デフォルトでは、globbyOptions.cwd
は cwd
によって設定されます。
詳細な使用方法については、Globby Guide を参照してください。
返される Promise
stylelint.lint()
は、次のプロパティを含むオブジェクトで解決する Promise
を返します。
code
fix
オプションが true
に設定されていて、code
オプションが指定されている場合、自動修正されたコードを含む文字列。そうでない場合は、undefined
です。
cwd
Lint 操作の作業ディレクトリとして使用されるディレクトリ。
errored
ブール値。true
の場合、少なくとも 1 つの "error" レベルの重大度を持つルールが問題を登録しました。
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 の代わりに verbose フォーマッターを使用する
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
が返されます。
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()
は undefined
に解決する Promise
を返します。
また、通常 lint()
に渡すオプションの次のサブセットを渡すこともできます。
cwd
config
configBasedir
customSyntax