メインコンテンツへスキップ

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 を基準と見なされます。

filescode はどちらも "オプション" ですが、どちらか一方を必ず指定する必要があり、両方を指定することはできません

globbyOptions

files とともに渡されるオプション。

たとえば、パスを glob する際に使用する特定の cwd を設定できます。files 内の相対 glob は、このパスを基準と見なされます。デフォルトでは、globbyOptions.cwdcwd によって設定されます。

詳細な使用方法については、Globby Guide を参照してください。

返される Promise

stylelint.lint() は、次のプロパティを含むオブジェクトで解決する Promise を返します。

code

fix オプションが true に設定されていて、code オプションが指定されている場合、自動修正されたコードを含む文字列。そうでない場合は、undefined です。

cwd

Lint 操作の作業ディレクトリとして使用されるディレクトリ。

errored

ブール値。true の場合、少なくとも 1 つの "error" レベルの重大度を持つルールが問題を登録しました。

output

警告

このプロパティは非推奨であり、次のメジャーバージョンで削除されます。report または code を代わりに使用してください。移行ガイドを参照してください。

次のいずれかを含む文字列。

  • (デフォルトのフォーマッターまたは渡したフォーマッターを使用して) フォーマットされた問題
  • または、fix オプションが true に設定されている場合は、自動修正されたコード

postcssResults

蓄積されたすべての PostCSS LazyResults を含む配列。

report

(デフォルトのフォーマッターまたは渡したフォーマッターを使用して) フォーマットされた問題を含む文字列。

results

すべての Stylelint 結果オブジェクト (フォーマッターが消費するオブジェクト) を含む配列。

maxWarningsExceeded

最大警告数と検出された数を含むオブジェクト。例: { maxWarnings: 0, foundWarnings: 12 }

構文エラー

CSS に構文エラーが含まれている場合、stylelint.lint()Promise を拒否しません。構文エラーに関する情報を含むオブジェクト (「返される Promise」を参照) で解決します。

使用例

例 A

configextends または 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

myConfigextends または 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